#python #django #model #admin
#python #django #Модель #администратор
Вопрос:
Кажется, не могу понять это. У меня есть model — Show и Episode, у которых есть отношение ForiegnKey для отображения. На странице Показать администратора я хочу, чтобы в выпадающем списке отображались все эпизоды, которые будут ссылаться на страницу их модели администратора… Единственное, что я могу получить, это свернутую форму, доступную только для чтения. Мне нравятся ссылки на страницу администратора с этим, но я просто хочу, чтобы это было в выпадающем списке.
***models.py***
class Show(models.Model):
title = models.CharField(_("title"), null=True, max_length=5000)
slug = models.SlugField(_("slug"), max_length=5000, unique=True)
class Episode(models.Model):
show = models.ForeignKey(Show, verbose_name=_("show"), on_delete=models.CASCADE)
title = models.CharField(_("title"), null=True, max_length=5000)
***admin.py***
class ShowAdmin(admin.ModelAdmin):
list_display = ('title', 'get_latest_duration', 'get_latest_pub_date',)
inlines = [
EpisodeInline,
]
class EpisodeInline(admin.StackedInline):
model = Episode
fieldsets = (
('Episodes', {
'classes': ('collapse',),
'fields': ('title',),
}),)
Ответ №1:
Вы можете использовать поля, доступные только для чтения. Вот пример:
from django.contrib import admin
class ShowAdmin(admin.ModelAdmin):
readonly_fields = ('episode_list',)
def episode_list(self, instance):
# you may render a html list here with episode names
return ",".join([x.name for x in instance.episodes]) # replace episodes with your model's related name
Смотрите пример здесь:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin .ModelAdmin.readonly_fields