Устанавливать вычисляемое свойство модели только один раз
я использую python3 + django, и у меня есть
- модель пользователя с небольшим количеством полей
- страница администратора, на которой представлены все пользователи
- страница формы, где представлен один пользователь и может быть обновлен
- внешний API с 2 конечными точками:
GET /api/users/name
(получить все имена для всех пользователей)GET /api/users/:id/name
(получить имя пользователя по id)
я хочу добавить свойство name
которое будет представлено на странице администратора (как колонка) и на странице формы (только для чтения, без возможности изменения)
как я могу добавить это "вычисляемое" свойство, не вызывая api больше, чем нужно?
это нормальная функция, вы должны создать новый метод в ModelAdmin и вы можете использовать результат этого метода в рендере. подробнее здесь: https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields
если вы хотите получать имя пользователя как readonly в списке и в форме, добавьте этот метод в list_display
и в field
или fieldsets
Modeladmin
options.
Вам не нужно использовать другие api, если у вас уже есть список пользователей.