簡體   English   中英

如何獲得Django(1.2)ManyToMany關系中所有模型的查詢集?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM