Как добавлять отображаемые поля в List display через цикл? Суть такая есть модель человек и привязанная к ней модель мероприятия на которые он подписан. В list display нужно отобразить имя человека и все мероприятия. И если он подписан на это мероприятие вывести название а там где он не подписан оставить пустым. Подскажите как через цикл заполнить list_display?

21 Авг 2019 в 06:24
214 +1
0
Ответы
1

Для реализации такой функциональности в Django можно воспользоваться методом list_display в административной панели. Для отображения полей модели через цикл можно использовать функцию или метод в классе ModelAdmin.

Ниже приведен пример кода, который демонстрирует, как реализовать подобный функционал:

from django.contrib import admin
from .models import Person, Event
class PersonAdmin(admin.ModelAdmin):
model = Person
def get_events(self, obj):
events = Event.objects.all()
display_events = []
for event in events:
if obj in event.attendees.all():
display_events.append(event.name)
else:
display_events.append('')
return ', '.join(display_events)
get_events.short_description = 'Events'
list_display = ['name', 'get_events']
admin.site.register(Person, PersonAdmin)

В данном примере создается класс PersonAdmin, который наследуется от admin.ModelAdmin. В методе get_events производится выборка всех мероприятий и проверка, подписан ли человек на каждое мероприятие. Затем создается список названий мероприятий, который будет отображаться в списке. Метод get_events добавляется в list_display, чтобы можно было отображать названия мероприятий рядом со именем человека в административной панели Django.

Таким образом, данный код позволит отображать имя человека и все мероприятия, на которые он подписан, в административной панели Django.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир