W oświadczeniu filtra Django Jaka jest różnica jeśli piszę:W instrukcji filtra Django jaka jest różnica pomiędzy __exact i równym znakiem (=)?
.filter(name__exact='Alex')
i
.filter(name='Alex')
Dzięki
W oświadczeniu filtra Django Jaka jest różnica jeśli piszę:W instrukcji filtra Django jaka jest różnica pomiędzy __exact i równym znakiem (=)?
.filter(name__exact='Alex')
i
.filter(name='Alex')
Dzięki
Nie ma różnicy, a drugi sugeruje użycie __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.
można spojrzeć na SQL że Django wykona przekształcając QuerySet za query
właściwość ciąg:
>>> 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 '
Tak więc __exact
nie robi tutaj różnicy.