Django, атрибуты метода запроса get и filter - PullRequest
0 голосов
/ 20 июня 2020

Это может быть возможное дублирование вопроса ({ ссылка }) , в котором говорится,

get () возвращает объект, соответствующий критерию поиска.

filter () возвращает QuerySet, который соответствует критерию поиска.

Рассмотрим модель ниже,

  class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    head = models.CharField(max_length=255)
    authors = models.ManyToManyField(Author)

Когда я пытаюсь запросить список авторов на основе определенных c Entry объектов ошибка, как указано ниже

введите описание изображения здесь

Почему в наборе запросов фильтра нет атрибута ' авторы '?

1 Ответ

1 голос
/ 20 июня 2020

Потому что это набор моделей, а не модель (даже если там только одна модель). Вам нужно извлечь его из набора запросов путем итерации или нарезки.

Если вас интересует только один экземпляр, просто придерживайтесь objects.get (). Objects.filter используется для запроса более чем одного объекта.

Примечание: .all () просто получает все из db, а его использование в уже отфильтрованном наборе запросов дает вам то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...