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

symfony - TEST environment only: The database schema is not in sync with the current mapping file -

twig - Using Twigbridge in a Laravel 5.1 Package -

jdbc - Not able to establish database connection in eclipse -