我正在使用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
列由登录用户自动填写并从表单中删除。
答案 0 :(得分:1)
您需要使用内联表单
class ChapterQuestionInline(admin.StackedInline):
model = ChapterQuestion
@admin.register(Chapter)
class ChapterAdmin(admin.ModelAdmin):
list_display = ["course","name","created_by"]
inlines = [ChapterQuestionInline]