【问题标题】:Add foreign key related entities in the same Django admin page在同一 Django 管理页面中添加外键相关实体
【发布时间】:2019-03-25 21:59:20
【问题描述】:

我正在开发一个 Django 应用程序,它将管理一些测验。这些测验由一个问题和一些可能的答案组成,我将其定义为不同的模型。

它们之间存在 OneToMany 关系,据我所知,应该用外键建模,在这种情况下,在答案实体中。

但是,在管理来自 Django 管理站点的数据时,这很不方便,因为我必须先定义我的问题,然后在添加答案时查找问题以填充外键字段.

是否有可能在添加问题的同时定义所有答案,就像它是多对多关系(带有 + 符号的框等)一样?

【问题讨论】:

    标签: python django foreign-keys django-admin


    【解决方案1】:

    您可以为此使用InlineModelAdmin

    在您的情况下,这可能类似于:

    from django.contrib import admin
    
    class AnswerInline(admin.StackedInline):
        model = Answer
        extra = 1  # If you have a fixed number number of answers, set it here.
    
    class QuestionAdmin(admin.ModelAdmin):
        model = Question
        inlines = [
            AnswerInline,
        ]
    
    # don't forget to register your model
    admin.site.register(Question, QuestionAdmin)
    


    希望对您有所帮助并祝您编码愉快!


    【讨论】:

    • 正是我想要的。还有一个问题:是否有可能检查每个问题是否只有一个正确答案?我过去用 clean() 方法做过类似的事情。
    • @pitazzo。非常欢迎你!是的,我认为你可以通过覆盖内联表单集来做到这一点。在评论中回答这个问题是不可能的(太短了),但也许这个问题会帮助你入门:stackoverflow.com/questions/13526792/… 否则我建议你为此创建一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2017-09-01
    相关资源
    最近更新 更多