2010-03-05 93 views
0

考慮下面的模型的遞歸多對多關係訪問一個字段:通過在Django模型

class Project(models.Model): 
    project_name = models.CharField(max_length=255) 
    abstract = models.TextField(blank=True, null=True) 
    full_description = models.TextField(blank=True, null=True) 
    date_begun = models.DateField(blank=True, null=True) 
    related_projects = models.ManyToManyField('self', blank=True, null=True) 
    class Meta: 
     ordering = ['project_name'] 
    def __unicode__(self): 
     return self.project_name 

如何訪問項目引用ID在related_projects領域。例如,我可以做這樣的事情讓他們PROJECT_NAME值:

def transform_related_projects(self, instance): 
    return [unicode(rp) for rp in instance.related_projects.all()] 

,但我看不出如何讓如果項目備案,因爲高清的Unicode(個體經營)函數只返回項目名稱作爲unicode字符串。我知道我錯過了一些明顯的東西。由於

回答

1
def transform_related_projects(self, instance): 
    return [rp.id for rp in instance.related_projects.all()] 
+0

果然,簡單。我曾嘗試return [unicode(rp)for rp in instance.related_projects.id.all()],當它不起作用時,我認爲我完全偏離了軌道。我仍然在學習python的基本概念。謝謝! – andyashton 2010-03-05 19:44:14