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