如何让 Django 管理员显示 OneToMany 而不是 ForeignKey

How to make Django admin shows OneToMany instead of ForeignKey

当我们在对象中使用 ForeignKey 时,在 Django 管理页面中,管理会显示在具有 ForeignKey 值的模型中设置 ForeignObject 的选项。

例如:

class Diferencial(SobreFather):
    class Meta:
        verbose_name = 'Diferencial'
        verbose_name_plural = 'Diferenciais'

class DiferencialItem(models.Model):
    diferencial = models.ForeignKey(Diferencial)
    icone = models.ImageField(upload_to="icones_diferencial")
    texto = models.CharField(max_length=50, null=False, blank=False)

    def __unicode__(self):
        return self.diferencial

    class Meta:
        verbose_name = 'Item Diferencial'
        verbose_name_plural = 'Itens Diferencial'

此代码将显示 select 与 django admin 中的 DiferencialItem 相关的 Diferencial 对象的选项。

有没有办法显示在差异管理视图中创建差异项的选项?

是的,使用 inline model admin:

class DiferencialItemInline(admin.TabularInline):
    model = DiferencialItem

class DiferencialAdmin(admin.ModelAdmin):
    inlines = [DiferencialItemInline]