问题描述
我的目标是仅注册和创建一个 Wagtail 管理页面,我可以在其中创建/编辑/查看问题模型的对象,但也可以通过外部添加与此模型相关的其他模型的其他字段键(假设创建 Question 模型的实例也可以创建 QuestionVersion 和 AnswerVersion 模型的实例,如 models.py 文件所示:
...
class Question(models.Model):
filepath = models.CharField(max_length=255,null=True,blank=True)
slug = models.CharField(max_length=255,blank=True)
order = models.CharField(max_length=255,blank=True)
category = models.ForeignKey('wiki.Article',on_delete=models.SET_NULL,blank=True)
user = models.ForeignKey(User,blank=True,null=True)
def __str__(self):
return "{}".format(self.id)
class QuestionVersion(models.Model):
question = models.ForeignKey(Question,on_delete=models.CASCADE)
slug = models.CharField(max_length=255,null=True)
title = models.TextField(max_length=255)
description = models.TextField(null=True,blank=True)
categories = models.ManyToManyField(Article,blank=True)
approved = models.BooleanField(default=False)
class AnswerVersion(models.Model):
question_version = models.ForeignKey(QuestionVersion,on_delete=models.CASCADE)
text = models.TextField()
correct = models.BooleanField(default=False)
def __str__(self):
return self.text
...
现在我正在注册/生成 3 个页面以在我的 wagtail_hooks.py(管理问题模型实例)中完成任务:
...
class QuestionAdmin(ModelAdmin):
model = Question
list_display = ('id','user')
class QuestionVersionAdmin(ModelAdmin):
model = QuestionVersion
list_display = ('question','title','description','categories','approved')
class AnswerVersionAdmin(ModelAdmin):
model = AnswerVersion
list_display = ('question_version','text','correct')
class Admin(ModelAdminGroup):
menu_label = 'Questions Admin'
items = (QuestionAdmin,QuestionVersionAdmin,AnswerVersionAdmin)
modeladmin_register(Admin)
...
鉴于 QuestionVersion 模型中的 question 字段是 Question 模型的外键,而 AnswerVersion 模型中的 question_version 字段是 QuestionVersion 模型的外键,我希望在 wagtail_hooks.py 文件中包含的内容类似于这个:
...
class FullQuestionAdmin(ModelAdmin):
models(source) = Question,QuestionVersion,AnswerVersion(models.py)
list_display = ('id','user','approved','correct')
class Admin(ModelAdminGroup):
menu_label = 'Questions Admin'
items = (FullQuestionAdmin)
modeladmin_register(Admin)
...
这样我就可以在 Wagtail 的一个管理页面中查看/创建/编辑问题。我怎样才能做到这一点?是否有可能? ,提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)