【问题标题】:Accessing a field via a recursive ManyToMany relationship in a Django model通过 Django 模型中的递归多对多关系访问字段
【发布时间】:2010-03-05 19:30:47
【问题描述】:

给定以下模型:

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

如何访问related_projects 字段中项目引用的ID。例如,我可以通过执行以下操作来获取他们的 project_name 值:

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

但我看不到如何获取项目记录的 if,因为 def unicode(self) 函数仅将项目名称作为 unicode 字符串返回。我知道我遗漏了一些明显的东西。谢谢

【问题讨论】:

    标签: django models


    【解决方案1】:
    def transform_related_projects(self, instance):
        return [rp.id for rp in instance.related_projects.all()]
    

    【讨论】:

    • 果然,简单。我曾尝试 return [unicode(rp) for rp in instance.related_projects.id.all()],但当它不起作用时,我认为我完全偏离了轨道。我猜还在学习python的基本概念。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2012-06-16
    • 2020-07-01
    • 2018-12-22
    • 2014-01-22
    相关资源
    最近更新 更多