我正在开发一个使用Django测验应用程序的网页。安装django-quiz
时,您可以在Admin
中创建测验,问题等。
不幸的是,没有办法,如何将Quiz
分配给我的模型Language
所以我正在寻找一种方法,如何将字段Language
添加到模型Quiz
中。
我已经试过了,但它不起作用。我已经尝试使用附加字段创建一个代理模型,但我意识到这在代理模型中是不可能的。
from quiz.models import Sitting,Quiz
class QuizAddLanguage(models.Model):
quiz = models.OneToOneField(Quiz)
language = models.ForeignKey(Language)
您知道如何将字段添加到第三方应用程序模型吗?
这一次,一对一应该足够了 - 每种语言都会有一个测验
由于它是一对一的,那么你可以在自己的语言类上定义关系,默认情况下,django将为您提供反向查找的含义
language_obj.quiz
quiz_obj.language
两者都有效。
这是一个相关的 Django 工单,六年前以"wontfix"的决议关闭:
https://code.djangoproject.com/ticket/14969
我认为此评论提供了一些很好的信息:
注释为您提供了处理此问题的*正确*方法 - 您定义一个接口,并使模型本身可插入。并非所有 Django 的 contrib 应用程序都遵循这种方法,但这并不意味着我们将猴子补丁烘焙到核心 - 我们修复 contrib 应用程序。
django.contrib.comments
现在是一个独立的应用程序,但它仍然使自己相对容易定制。以下是相关文档:
https://django-contrib-comments.readthedocs.io/en/latest/custom.html
如果第三方应用程序不容易定制,我建议要求开发人员更新它,并向他们指出上述链接以获取有关如何执行此操作的示例。