17
在Django中篩選語句有什麼區別,如果我寫的:在Django filter語句中__exact和等號(=)有什麼區別?
.filter(name__exact='Alex')
和
.filter(name='Alex')
感謝
在Django中篩選語句有什麼區別,如果我寫的:在Django filter語句中__exact和等號(=)有什麼區別?
.filter(name__exact='Alex')
和
.filter(name='Alex')
感謝
沒有區別,第二個意味着使用__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.
你可以看一下這Django會通過查詢集的query
財產轉換爲執行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 '
所以__exact
這裏沒有什麼區別。