我有**Blog
模型如下。* 我使用Django 3.2.16和PostgreSQL**:
# "store/models.py"
from django.db import models
class Blog(models.Model):
post = models.TextField()
def __str__(self):
return self.post
那么,store_blog
表在下面有2行:
store_blog
表格:
| 身份证|柱|
| - ------| - ------|
| * * 一个**| * * Python很流行而且简单。|
| * * 二| * * Java既流行又复杂。|
然后,当在test()
视图中编写filter()代码**(带有2个post__contains
参数)时,运行**AND
运算符**,如下所示:
# "store/views.py"
from .models import Blog
from django.http import HttpResponse
def test(request):
qs = Blog.objects.filter(
post__contains="popular", post__contains="simple"
) # ↑ ↑ ↑ Here ↑ ↑ ↑ # ↑ ↑ ↑ Here ↑ ↑ ↑
print(qs)
return HttpResponse("Test")
我得到了下面的错误:
语法错误:关键字参数重复:帖子包含
那么,如何在Django中使用**filter()
运行AND
运算符而不出现SyntaxError: keyword argument repeated:
错误**呢?
1条答案
按热度按时间iezvtpos1#
可以使用**
&
或使用Q()和&
运行AND
运算符**,如下所示:然后,您可以得到下面的结果:
并且,根据PostgreSQL的查询日志,有**
AND
运算符**,如下所示,您可以选中在PostgreSQL上,如何记录带有事务查询(如"BEGIN"和"COMMIT")的查询此外,您还可以使用**
filter()
、|
或使用Q()和|
运行OR
运算符**,如下所示:然后,您可以得到下面的结果:
其中,根据PostgreSQL的查询日志,有**
OR
操作符**,如下所示:and
或or
来运行AND
或OR
运算符**,因为根据此答案,它们无法正常工作,实际上,只有**&和的示例|* * 所以你应该像我上面展示的那样使用**&
和|
**。