【问题标题】:Admin site add 2 related models at the same time管理站点同时添加2个相关模型
【发布时间】:2014-09-09 16:02:28
【问题描述】:

所以我有 2 个模型,如下所示:

class Movie(models.Model):
    # some fields here

class MovieGenre(models.Model):
    movie = models.ForeignKey(Movie)
    genre = models.CharField(max_length=256, choices=MOVIE_GRENRES)

这是我的模型管理员:

class MovieAdmin(admin.ModelAdmin):
    fields = ['title', 'description', 'publish_date', 'file_1080p', 'thumbnail']

我想做的是让人们在管理页面中添加Movie 模型,从列表中选择流派(有 6 个流派)作为复选框或类似的东西。所以我不会创建 2 个不同的页面来添加电影和流派。

谢谢!

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    这是Model Admin Inlines 的完美用例:

    管理界面可以在同一页面上编辑模型 一个父模型。

    这些被称为内联。

    TabularInline 的示例:

    from django.contrib import admin
    
    class MovieGenreInline(admin.TabularInline):
        model = MovieGenre
    
    class MovieAdmin(admin.ModelAdmin):
        inlines = [
            MovieGenreInline,
        ]
    

    【讨论】:

    • 这是一个选择字段。是否可以为所有类型使用复选框而不是从下拉列表中添加它们?
    • @Pacha 听起来你真的需要ManyToManyField,而不是简单的ForeignKey。有关类似用例,请参阅此主题:stackoverflow.com/questions/2726476/…
    猜你喜欢
    • 2012-10-12
    • 2016-02-18
    • 2016-03-08
    • 2022-10-25
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多