У меня есть две модели в Django, связанные между собой отношением ManyToMany, например:
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person)
Мне нужно чтобы получить главного человека в группе, который является первым человеком в группе. Как мне найти первого человека?
Вот как я добавляю участников:
grp = Group.objects.create(name="Group 1")
grp.save()
prs = Person.objects.create(name="Tom")
grp.members.add(prs) #This is the main person of the group.
prs = Person.objects.create(name="Dick")
grp.members.add(prs)
prs = Person.objects.create(name="Harry")
grp.members.add(prs)
Я не думаю, что мне нужны дополнительные столбцы, так как идентификатор таблицы group_members
- это текущая последовательность, верно .
Если я попытаюсь получить главного члена группы через Group.objects.get (id = 1) .members [0]
, то Django скажет, что менеджер не индексируется.
Если я попробую этот Group.objects.get (id = 1) .members.all (). Order_by ('id') [0]
, я получу элемент с наименьшим идентификатором в Персональный
стол.
Как я могу решить эту проблему?
Спасибо