update queryset method functions fields calculated django django-models django-orm

queryset - update django model



En la declaración de filtro de Django, ¿cuál es la diferencia entre__exact y el signo igual(=)? (2)

En la declaración del filtro de Django, ¿cuál es la diferencia si escribo:

.filter(name__exact=''Alex'')

y

.filter(name=''Alex'')

Gracias


No hay diferencia, la segunda implica usar el __exact.

De la documentation :

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.


Puedes ver el SQL que Django ejecutará al convertir la propiedad de query del conjunto de query en una cadena:

>>> 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 ''

Así que __exact no hace ninguna diferencia aquí.