У меня есть имя модели «Группа» с отношениями ManyToMany с пользователем Django и таблица «Членство» между ними.
class UserManager(models.Manager):get_query_set(self):
return super(UserManager, self).get_query_set().select_related('expenses')
class User(DjangoUser):
objects = UserManager()
class Meta:
proxy = True
class Group(models.Model):
name = models.CharField(verbose_name=_('Name'), max_length=255)
users = models.ManyToManyField(User, related_name='groups', through='Membership')
class Membership(models.Model):
user = models.ForeignKey(User)
group = models.ForeignKey(Group)
date_joined = models.DateField(auto_now_add=True, verbose_name=_('Date joined'))
Когда я пытаюсь получить группы для пользователя, все в порядке:
>>> User.objects.get(id=2).groups.all()
[<Group: Group object>]
>>> User.objects.get(id=2).groups.get(id=1)
<Group: Group object>
Проблема в том, что я не могу получить пользователей для группы:
>>> Group.objects.get(id=1).users.all()
[]
Я заметил одну вещь: поле user_id в моей базе данных (сгенерированное django) не имеет внешнего ключа для таблицы auth_user, но поле group_id имеет внешний ключ для таблицы myapp_group.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Здесь явно что-то не так:
>>> User.objects.get(id=2).groups.get(id=1).users.all()
[]