python - Django queryset on related field with multiple constraints -


suppose have following models:

class user(models.model):     # ... fields  class tag(models.model):     # ... fields  class usertag(models.model):     user = models.foreignkey(user, related_name='tags')     tag = models.foreignkey(tag, related_name='users')     date_removed = models.datetimefield(null=true, blank=true) 

now lets want users have given tag has not yet been removed (ie date_removed=none). if didn't have worry date_removed constraint, do:

user.objects.filter(tags__tag=given_tag) 

but want users have given tag and have tag without date_removed on it. there easy way in django in single queryset? , assume have millions of users, getting sort of list of user ids , keeping in memory not practical.

your filter() call can include multiple constraints:

user.objects.filter(tags__tag=given_tag, tags__date_removed=none) 

see the documentation on spanning multi-valued relationships. (in particular, difference between filter(a, b) , filter(a).filter(b).)


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -