Ale*_*lex 22 django django-models django-orm
在Django过滤器语句中,如果我写的话有什么区别:
.filter(name__exact='Alex')
Run Code Online (Sandbox Code Playgroud)
和
.filter(name='Alex')
Run Code Online (Sandbox Code Playgroud)
谢谢
Mik*_*eAr 28
没有区别,第二个意味着使用__exact.
从文档:
For example, the following two statements are equivalent:
>>> Blog.objects.get(id__exact=14) # Explicit form
>>> Blog.objects.get(id=14)
# __exact is implied This is for convenience, because exact
# lookups are the common case.
Run Code Online (Sandbox Code Playgroud)
Gar*_*ees 15
您可以通过将queryset的query
属性转换为字符串来查看Django将执行的SQL :
>>> from django.contrib.auth.models import User
>>> str(User.objects.filter(username = 'name').query)
'SELECT ... WHERE `auth_user`.`username` = name '
>>> str(User.objects.filter(username__exact = 'name').query)
'SELECT ... WHERE `auth_user`.`username` = name '
Run Code Online (Sandbox Code Playgroud)
所以__exact
这里没什么区别.
归档时间: |
|
查看次数: |
7545 次 |
最近记录: |