python - How to perform AND condition in django queryset? -
i want write django query equivalent sql query:
select * user name '%danny%' , name '%jack%' , name '%peter%' ...
in django
, have list example :
lst=['danny','jack','peter']
how construct djagno queryset
filter?
use q operator:
queryargs = [q(name__contains=i) in lst] queryset = user.objects.filter(*queryargs)
update
i have answered question, given second, expanded question on how obtain combination
select * user (name '%danny%' , name '%jack%' , name '%peter%') or (family '%danny%' , family '%jack%' , family '%peter%')
this should work:
from django.db.models import q qname = q() in lst: qname &= q(name__contains=i) qfamily = q() in lst: qfamily &= q(family__contains=i) queryset = data.objects.filter(qname | qfamily)
Comments
Post a Comment