Аргумент типа «ManyToManyDescriptor» не повторяется - PullRequest
0 голосов
/ 05 октября 2018

У меня есть режим:

class Subscribe(models.Model):
   class Meta:
    verbose_name_plural = 'sunscribes'

   id=models.AutoField(primary_key=True)
   name=models.CharField(max_length=30,null=False);

   owner=models.ForeignKey(User,related_name='owner', null=False, blank=True, on_delete=models.PROTECT)
   subscription = models.ManyToManyField(User,null=True,related_name='subscription') 

Мне нужно выбрать все элементы подписки, где этот пользователь находится в списке подкатегория

Моя попытка:

avtor=post.author # user item
subscribe=Subscribe.objects.get(avtor in Subscribe.subscription ) # get list 

Ошибка: аргумент типа 'ManyToManyDescriptor' не повторяется

Сообщение является экземпляром статьи:

class Article(models.Model):
    id = models.AutoField(primary_key=True)
    ...
    author = models.ForeignKey(User, null=True, blank=True, on_delete=models.PROTECT)

1 Ответ

0 голосов
/ 05 октября 2018

Обратные отношения используют имя, которое вы определяете в related_name, поэтому получить все подписки для пользователя просто

avtor.subscription.all()

Ваше сообщение об ошибке приходит от

avtor in Subscribe.subscription

, котороена самом деле не имеет смысла .. Чтобы начать с Subscribe, вам нужно сделать

Subscribe.objects.filter(subscription__user=avtor)
...