Доступ к полю через рекурсивное отношение ManyToMany в модели Django - PullRequest
0 голосов
/ 05 марта 2010

Учитывая следующую модель:

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. Например, я могу получить их значения project_name, выполнив что-то вроде этого:

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

Но я не вижу, как получить if для записи Project, поскольку функция def unicode (self) возвращает имя проекта только в виде строки Unicode. Я знаю, что упускаю что-то очевидное. Спасибо

1 Ответ

2 голосов
/ 05 марта 2010
def transform_related_projects(self, instance):
    return [rp.id for rp in instance.related_projects.all()]
...