Имам име на модел „Група“ с връзка 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()
[]