【问题标题】:How to display a dropdown for ForeignKey models on the PARENT admin page如何在 PARENT 管理页面上显示 ForeignKey 模型的下拉列表
【发布时间】:2019-09-14 12:58:31
【问题描述】:

似乎无法弄清楚这一点。我有一个模型 - Show 和 Episode,它与 Show 具有 ForiegnKey 关系。在 Show admin 页面上,我想要一个所有剧集的下拉显示,它将链接到他们的管理模型页面......我唯一能得到的是一个折叠的表单作为只读。我喜欢这个指向管理页面的链接,但我只希望它在下拉列表中。

***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',),
        }),)

【问题讨论】:

    标签: python django model admin


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-13
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2012-05-19
      • 2013-06-07
      • 2012-02-06
      相关资源
      最近更新 更多