orm - Make django select a list of related objects -
i have model this:
class issue(models.model): project = models.foreignkey(project, null=true, blank=true) key = models.charfield(max_length=30, null=true, blank=true) title = models.charfield(max_length=400) description = models.textfield(null=true, blank=true) createdbyuser = models.foreignkey(user) creationdate = models.datetimefield() updateddate = models.datetimefield(null=true, blank=true) trackerurl = models.urlfield(null=true, blank=true) is_feedback = models.booleanfield() is_public_suggestion = models.booleanfield() class issuewatch(models.model): issue = models.foreignkey(issue) user = models.foreignkey(user) reason = models.charfield(max_length=30, null=false, blank=false) full code here: https://github.com/freedomsponsors/www.freedomsponsors.org/blob/master/djangoproject/core/models.py
this system similar issue tracker. there issues , user can watch issue (issuewatch) receive email updates.
i want make query return list of issues user watching. like:
issuewatch.objects.select('issue').filter(user=17) of course, there's no such "select" method 1 i'd use above.
is there way can make django return lazy collection of issue (and not issuewatch) objects?
--------------- update -----------
i tried reading user.issue_set.all() , works. i'm confused. why user issue_set? if had created model let user, say, favorite issues, like:
class issuefavorite(models.model): issue = models.foreignkey(issue) user = models.foreignkey(user) what issue_set mean then?
--------------- update2 -----------
duh, found answer. issue_set refers issues created user (because of attribute: issue.createdbyuser) that's not issue list want.
so, if i'm understanding question, want select of issues being watched particular user? done following:
issue.objects.filter(issuewatch__user=17)
Comments
Post a Comment