2010-03-05 52 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