Итак, вот проблема, с которой я сталкиваюсь с этой моделью Django.Модели Django: укажите одно и то же поле дважды в fk-модели
У меня есть ключ foriegn к классу SecretSantaGroup в классовых цессионариях, называемых группой. Я хочу ссылаться на этот fk в создателе и правопреемнике.
довольно много данных, что я хочу, как это: создателя = self.group.members цессионария = self.group.members
Но у меня возникают проблемы при переходе об этом и может использовать некоторую помощь.
Я хочу, чтобы иметь возможность ссылаться на всех пользователей в этой конкретной группе, просто имея проблемы с этим.
class SecretSantaGroups(models.Model):
groupName = models.TextField()
members = models.ManyToManyField(User)
def __str__(self):
return self.groupName
class Meta:
verbose_name_plural = 'Secret Santa Groups'
class assignees(models.Model):
group = models.ForeignKey(SecretSantaGroups)
#person that gives gifts
creator = models.ForeignKey(self.group.members, null=True)
#person who receives gift
assignee = models.ForeignKey(self.group.members, null=True)
EDIT --- Я использовал страшную формулировку, класс правопреемников должен быть тем, кто получает, кто в группе. 1 человек получает другую в каждой секретной группе. так gifter и giftee
class assignees(models.Model):
group = models.ForeignKey(SecretSantaGroups)
#person that gives gifts
giver = models.???(self.group.members, null=True)
#person who receives gift
giftee = models.???(self.group.members, null=True)
Ваша модель «правопреемников» не имеет смысла. Что вы ожидаете от внешнего ключа для создателя и правопреемника? Кроме того, я бы предложил использовать правильные соглашения об именах для ваших моделей; singleluar и TitleCased. Имена классов Python должны * всегда начинаться с заглавной буквы. – Brandon
Я не был слишком сосредоточен на конвенции именования. Я хочу, чтобы создатель и правопреемник обращались к членам группы. Я исправлю соглашение после того, как они связаны. – McFads
Это все еще не имеет никакого смысла. Вы хотите обратиться к конкретному пользователю, но только от пользователей, которые находятся в 'group.members'? – Brandon