У меня есть следующие модели:Объединение полей 2 таблиц, записей не работает
class Org(models.Model):
org_id = models.AutoField(primary_key=True)
org_name = models.CharField(max_length=45, null=False)
org_hood = models.CharField(max_length=60, null=False)
creation_date = models.DateField(auto_now_add=True)
class Member(models.Model):
member_id = models.AutoField(primary_key=True)
user = models.OneToOneField(User)
nick_name = models.CharField(max_length=20, null=False)
is_self_managed = models.BooleanField(default=True)
orgs = models.ManyToManyField(Org, through='OrgToMember', default)
Вышеуказанные модели соединены через следующие модели:
class OrgToMember(models.Model):
org_to_member_id = models.AutoField(primary_key=True)
org = models.ForeignKey(Org, unique=False)
member = models.ForeignKey(Member, unique=False)
member_since = models.DateField(auto_now_add=True)
balance = models.DecimalField(default=0, max_digits=19, decimal_places=2)
is_enabled = models.BooleanField(default=True)
is_self_managed = models.BooleanField(default=True)
notifications = models.IntegerField(null=True)
Член имеет баланс в каждом Орг они находятся внутри. Они могут быть во многих Органах, и у Оргов может быть много членов. Я пытаюсь вернуть список записей с полями, связанными с конкретным членом:
org_name balance notifications
Если я создаю объект члена, я могу перечислить Orgs для члена, как так:
m = Member.objects.get(pk=2)
m.orgs.values()
Это вернет только поля в модели Org. Или я могу вернуть поля в OrgToMember так:
m = Member.objects.get(pk=2)
m.orgtomember_set.values()
Я не могу показаться, чтобы объединить 2 модели и вернуть поля мне нужно (ORG_NAME, баланс, уведомления). Я уверен, что это имеет какое-то отношение к отношениям, которые я создал между моими моделями, или к тому факту, что мне нужно использовать функцию «select_related», но это не работает независимо от того, что я пытаюсь сделать.
Это сделало трюк! – Progger