gpt4 book ai didi

python - 具有变量值的 Django 查询集

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:07 27 4
gpt4 key购买 nike

我在 django 中为我的数据库编写动态过滤器,我使用下面的代码,其中我有 2 个变量(p_type,s_type):

        p_type=[]
s_type=[]
query = request.GET.get("q")
p_type =request.GET.get("p_type")
s_type = request.GET.get("s_type")
#messages.add_message(request, messages.INFO, p_type)
#messages.add_message(request, messages.INFO, s_type)
if query:
queryset_find = queryset_list.filter(
Q(FP_Item__contains=query))
context = {'object_list': queryset_find}
return render(request, 'index.html', context)
elif p_type:
queryset_find = queryset_list.filter(
Q(p_type__contains=s_type))
context = {'object_list': queryset_find}
return render(request, 'index.html', context)
else:
context = {'object_list': queryset}
return render(request, 'index.html', context)

但是django在下面一行返回错误

Q(p_type__contains=s_type))

我有动态单选按钮,其中 p_type 的值与我的数据库匹配,但即使我收到以下错误:

Exception Type: FieldError
Exception Value:
Cannot resolve keyword 'p_type' into field. Choices are: ... (same choices which I am using with my database).

变量查询不可行吗?还有其他方法吗?

型号:

class RFP(models.Model):
FP_Item = models.TextField(max_length=1500)
P_63 = models.TextField(max_length=1000)
P_64 = models.TextField(max_length=1000)

最佳答案

如果p_type中保存的是你要查询的字段名,那么你可以这样做:

elif p_type:
kwargs = {
'{}__contains'.format(p_type): s_type
}
queryset_find = queryset_list.filter(Q(**kwargs))
...

关于python - 具有变量值的 Django 查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50098611/

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