Как отобразить выпадающий список для моделей ForeignKey на странице администрирования PARENT - PullRequest
0 голосов
/ 25 апреля 2019

Не могу понять это. У меня есть модель - Show и Episode, которая имеет отношение ForiegnKey к Show. На странице «Показать администратор» я хочу раскрывающийся список всех эпизодов, который будет ссылаться на страницу их модели администратора ... Единственное, что я могу получить - это свернутая форма только для чтения. Мне нравятся ссылки на страницу администратора с этим, но я просто хочу в раскрывающемся списке.

***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 Ответ

0 голосов
/ 25 апреля 2019

Вы можете использовать поля только для чтения.Вот пример:

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

...