gpt4 book ai didi

python - 任意深度的过滤器链

转载 作者:行者123 更新时间:2023-12-01 09:11:57 26 4
gpt4 key购买 nike

我想选择具有多个标签的文章;

url(r"^tagged/(?P<tags>[+]*\w+)$", views.tagged, name="tagged"),

请求的行为类似于“article/tagged/python+django”

在views.py中,确定标签的长度,找到符合条件的文章

def tagged(request, tags):
tags = tags.split("+")
if len(tags) == 1:
articles = Article.objects
.filter(tags__name=tags[0])

if len(tags) == 2:
articles = Article.objects
.filter(tags__name=tags[0])
.filter(tags__name=tags[1])
if len(tags) == 3:
articles = Article.objects
.filter(tags__name=tags[0])
.filter(tags__name=tags[1])
.filter(tags__name=tags[2])

if ...

倍数看起来很笨拙,我如何用通用函数来解决这个问题来处理任意长度的标签。

最佳答案

您可以使用 for 循环逐一应用标签:

def tagged(request, tags):
tags = tags.split("+")
articles = Article.objects.all()
for tag in tags:
articles = articles.filter(tags__name=tag)

关于python - 任意深度的过滤器链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com