【问题标题】:Create multiple related objects in Django Admin在 Django Admin 中创建多个相关对象
【发布时间】:2018-04-28 10:56:06
【问题描述】:

我正在使用Django 2.0

我有两个模型

class Chapter(models.Model):
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    name = models.CharField(max_length=250, blank=False)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    class META:
        verbose_name_plural = 'chapters'
        db_table = 'chapters'

    def __str__(self):
        return self.name

class ChapterQuestion(models.Model):
    chapter = models.ForeignKey(Chapter, on_delete=models.CASCADE)
    word = models.CharField(max_length=250)
    definition = models.CharField(max_length=250)

    class META:
        verbose_name_plural = 'chapter questions'
        db_table = 'chapter_questions'

    def __str__(self):
        return self.word

由于每个ChapterQuestion 只属于一个Chapter,我认为可能是Many-to-one 关系。

我的admin.py只包含

admin.site.register(Chapter)
admin.site.register(ChapterQuestion)

我希望能够在使用Django Admin 创建/编辑章节时添加/编辑多个问题。

但 Django Admin 只显示 chapter 字段

另外,我希望 created_by 列由登录用户自动成为字段并从表单中删除。

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    你需要使用内联表单

    class ChapterQuestionInline(admin.StackedInline):
        model = ChapterQuestion
    
    @admin.register(Chapter)
    class ChapterAdmin(admin.ModelAdmin):
        list_display = ["course","name","created_by"]
        inlines = [ChapterQuestionInline]
    

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 2018-11-20
      • 2023-03-03
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多