данные django из промежуточной таблицы manytomanyfield - PullRequest
1 голос
/ 06 января 2011

В настоящее время в моем файле models.py (урезано) настроена следующая структура модели:

class Admin(models.Model):
    admin_name = models.CharField(unique = True, blank = False, null = False, max_length = 128, verbose_name = u'admin full name')

    def __unicode__(self):
        return self.admin_name
    class Meta:
        ordering = ('id',)
        verbose_name = u'Admin Info'

class Project(models.Model):
    client = models.ForeignKey(Client, verbose_name = u'Client')
    description = models.ForeignKey(Description, verbose_name = u'project description')
    admins = models.ManyToManyField(Admin, verbose_name = u'Administrators', through = 'Admin_Payment')

class Admin_Payment(models.Model):
    admin = models.ForeignKey(Admin, verbose_name = u'Administrator')
    project = models.ForeignKey(Project, verbose_name = u'project')
    agreed_payment = models.DecimalField(max_digits = 16, decimal_places = 2, blank = True, default = 0)

Как вы можете видеть, я установил множество отношений между моими проектами и администраторами, используяAdmin_Payment в качестве промежуточной таблицы.

Мой вопрос заключается в том, как сделать поле согласованный_платеж (который находится в классе Admin_Payment) доступным для моего класса Project?

1 Ответ

4 голосов
/ 06 января 2011

Django создает атрибут admin_payment_set в объекте Project, который является «связанным менеджером».Получите доступ к его объектам, например, с помощью "all ()".Например,

p = Project.objects.get(pk=1)
paysets = p.admin_payment_set.all()
paysets[0].agreed_payment
...