Django добавление и удаление формы ManyToMany field: AttributeError: объект 'QuerySet' не имеет атрибута 'add' - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь добавить пользователей ко многим полям в моей модели курса, я получаю сообщение об ошибке:

Course.course_dislikes.through.objects.filter(course__course_code=code,course__course_university=university).add(request.user)
AttributeError: 'QuerySet' object has no attribute 'add'

Я намерен отфильтровать свою модель курса на основе кода курса и добавить пользователю нравится поле или удалить его, когда пользователю не нравится. Теперь я знаю, что не могу использовать get, поскольку могут быть два объекта с одним и тем же кодом курса. В настоящее время я пытаюсь сделать это с помощью:

Course.course_likes.through.objects.filter(course__course_code=code).remove(request.user)

Я пробовал с get, но он выдает мне ошибку, что существуют два объекта с одинаковым именем, что понятно, поскольку get должен возвращать один уникальный объект. Как я могу достичь этого с помощью oop, ведь я не могу придумать другого метода.

1 Ответ

1 голос
/ 05 мая 2020

Я думаю, что комментарий Араккала Абу действителен: Вот отрывок из официальной Django документации о том, как создать отношения M2M:

a4 = Article(headline='NASA finds intelligent life on Earth')
a4.save()
p2.article_set.add(a4)
p2.article_set.all()
>>> <QuerySet [<Article: NASA finds intelligent life on Earth>]>
a4.publications.all()
>>> <QuerySet [<Publication: Science News>]>

Не уверен, есть ли другой способ - думал об этом. Но решения придумать не смог. В этих случаях всегда полезно go вместе с документацией.

...