我正在显示一个包含4个文本框的页面,每个文本框将用户输入的值存储到一个单独的变量中。 我的数据库有4列,每列对应一个文本框的变量。
我想这样做: 用户可以在1,2,3或全部4个文本框中输入值,我想根据他们输入的每个值修剪搜索结果。每个文本框都是可选的。
我该怎么做?我是Django的新手,我只知道如何使用一个搜索词进行搜索。
答案 0 :(得分:2)
我认为你需要Q对象。请参阅:https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects
来自文档:
Poll.objects.get(
Q(question__startswith='Who'),
Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)
转换为:
SELECT * from polls WHERE question LIKE 'Who%'
AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06')
您可以从已清理的表单中填充Q查询 - 您甚至可能希望覆盖clean()并以这种方式返回查询集,以便您可以从验证的表单中访问查询集。