Для чего используется 'related_name' в Django?

Глядя на изображение вывода ошибки, похоже, что он пытается перезапустить более ранний запуск. («Найден файл контрольной точки: C: \ Program Files ... \ 291506LVCP. Это задание перезапуска») Вы сможете удалить этот файл контрольной точки и выполнить его повторно.

338
задан Serjik 18 December 2015 в 22:18
поделиться

2 ответа

Атрибут related_name указывает имя обратной связи из модели пользователя обратно к вашей модели.

Если вы не укажете related_name , Django автоматически создаст его, используя имя вашей модели с суффиксом _set , например User.map_set.all ( ) .

Если вы укажите , укажите, например related_name = maps в модели User , User.map_set по-прежнему будет работать, но пользовательские карты . синтаксис, очевидно, немного чище и менее громоздок; так, например, если у вас есть объект пользователя current_user , вы можете использовать current_user.maps.all () , чтобы получить все экземпляры вашей модели Map , которые имеют отношение к current_user .

В документации Django есть более подробная информация.

443
ответ дан 23 November 2019 в 00:39
поделиться

prefetch_related использование для данных упреждающей выборки для Многих многим и многим к данным отношений. select_related должен выбрать данные из единственных отношений значения. Оба из них используются для выборки данных из их отношений из модели. Например, Вы создаете модель и модель, которая имеет отношения с другими моделями. Когда запрос прибудет, Вы также запросите для их данных отношений, и у Django есть очень хорошие механизмы Для доступа к данным из их отношений как book.author.name , но когда Вы выполняете итерации списка моделей для выборки их данных отношений, Django создает каждый запрос на каждые данные отношений. Для преодоления этого, мы действительно имеем prefetchd_related и selected_related

0
ответ дан 23 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: