[英]How do you get a query set of all models in a Django (1.2) ManyToMany relationship?
我有一個項目模型,該模型具有一個先決條件屬性,該屬性是一個鏈接到其他項目的ManyToMany字段。 也就是說,每個項目可以有0+個必須完成的項目,然后才能完成。
class Project(models.Model):
title = models.CharField(max_length=200)
prequisites = models.ManyToManyField('self', null=True, blank=True)
如何退回該項目的先決條件的所有項目? 我想做這樣的事情:
project_a = Project.objects.get(title="My Cool Project")
for pre_requisite in project_a.prequisites:
# do something with pre_requisite
但是project_a.prequisites
返回ManyRelatedManager
對象。 特殊的_set屬性似乎也不起作用:
project_a.prequisites_set
AttributeError: 'Project' object has no attribute 'prequisites_set'
我正在考慮在另一個模型中對先決條件進行建模:
class ProjectPrequisite(models.Model):
project = models.ForeignKey(Project)
prequisite = models.ForeignKey(Project)
但是如果您知道我的意思,我寧願以正確的方式做事。
project_a.prequisites.all()
將返回通過您的manytomanyfield連接的所有Project
實例
管理器允許您像通過模型的objects
屬性那樣過濾和獲取queryset對象
這將允許您做類似的事情
project_a.prequisites.filter(title='a_prereq_title')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.