热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

没有外键在Django中尝试内联模型时

没有外键在Djan

您无法在Django管理员中进行“嵌套”内联(即,您无法使用内联问题进行测验,每个内联问题都具有内联答案)。因此,您需要将目光放到仅包含内联问题(然后,如果导航查看单个问题,则可能会有内联答案)。

因此,您的模型很好,但是您的管理代码应如下所示:

class QuestionInline(admin.TabularInline):
model = Question
extra = 20
class AnswerInline(admin.TabularInline):
model = Answer
extra = 4
class QuestionAdmin(admin.ModelAdmin):
inlines = [AnswerInline]
class AnswerAdmin(admin.ModelAdmin):
pass
class QuizAdmin(admin.ModelAdmin):
inlines = [QuestionInline]

AnswerAdmin拥有AnswerInline或QuestionAdmin拥有QuestionInline是没有意义的(除非这些是具有自引用外键的模型)。而且QuizAdmin不能具有AnswerInline,因为Answer没有到Quiz的外键。

如果Django确实支持嵌套内联,则逻辑语法将使QuestionInline接受“内联”属性,您可以将其设置为[AnswerInline]。但事实并非如此。

还要注意,“ extra = 20”表示每次加载时,每个测验的底部都会有20个空白问题表格(即使它已经有20个实际问题)。也许这就是您想要的-
可以使页面很长,但是可以轻松一次添加很多问题。





推荐阅读
author-avatar
手机用户2502903815
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有