如何将字段添加到第三方应用模型



我正在开发一个使用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

如果第三方应用程序不容易定制,我建议要求开发人员更新它,并向他们指出上述链接以获取有关如何执行此操作的示例。

相关内容

  • 没有找到相关文章

最新更新