1.先看效果:
2.分析:
实际上questions 和 choices 是两个model, 并且是1对多的关系。 模型嵌套后就能快速的新增和查看。
不然传统方式注册两个表,要先新增问题,再到答案里去新增,如下图:
model中
3.具体做法:admin中设置嵌套模型
分两步:
1.指定谁为 嵌套模型
2.使用嵌套模型,让它嵌套在哪儿
代码如下
class ChoiceInline(admin.TabularInline):
model = models.Choice
class QuestionAdmin(admin.ModelAdmin):
inlines = [ChoiceInline]
admin.site.register(models.Question,QuestionAdmin)
admin.site.register(models.Choice) # 这个都可以不要了
就实现了,假如反过来,把问题模型嵌套在选项答案里是会报错的
总结: 外键一般定义在多方,那么就可以把多方模型嵌套在一方的模型里面
补充-:假如一个模型,被另外两个模型设有外键,也可以使用
效果: