Django queryset не имеет атрибута при использовании select related - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь использовать select_related для набора запросов, и он возвращает набор запросов не имеет атрибута при использовании select related. Я сделал две модели, и у одной модели есть столбец Foreignkey, это 1: 1.

models

class User(models.Model):
   name = Charfield()

class Item(models.Model):
   user = models.ForegnKey(User, on_delete=models.CASCADE, related_name='user_item_set', null=True)

Когда я пытаюсь использовать этот набор запросов, он говорит, что набор запросов не связан с select.

users = User.objects.get(id=pk).select_related('user_item_set')

1 Ответ

0 голосов
/ 26 января 2020

Похоже, вы неправильно поняли использование select_related () .

Возвращает QuerySet, который будет «следовать» отношениям внешнего ключа, выбирая дополнительные данные связанного объекта, когда он выполняет свой запрос.

Может использоваться на модели Item (модель, определяющая поле ForegnKey), а не на модели User.


Что вам нужно использовать prefetch_related () . Как то так:

users = User.objects.get(id=pk).prefetch_related('item_set')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...