Djongo重新定义ArrayModelField的结构

时间:2018-10-29 10:22:53

标签: django mongodb django-models djongo

我正在使用ArrayModelField定义Djongo。看起来不错,但是ArrayModelField的问题在于我只能将其添加为对象数组,而不仅仅是平面列表。有什么方法可以将其添加为平面列表

示例:

# models.py
from djongo import models

class Option(models.Model):
    option = models.CharField(max_length=100)

    class Meta:
        abstract = True

    def __str__(self):
        return self.option

class Quiz(models.Model):
    _id = models.ObjectIdField()
    question = models.TextField(null=True, blank=True)
    options = models.ArrayModelField(model_container=Option)
    answers = models.ArrayModelField(model_container=Option)

以此为基础,我可以如下创建文档,

Current Document Format

但是我想以这种格式保存它,

Required Document Format

我也希望在 Django管理面板中对视图进行解析。

现在有什么方法可以做到这一点?

谢谢。

2 个答案:

答案 0 :(得分:2)

从Djongo的最新版本开始,如果要自动支持管理面板,则仍然无法使用此结构。话虽如此,您始终可以使用IdentityServer4并为管理面板编写自定义视图,这是目前有效的解决方案。另外,也看不到开发人员将在其中修复的任何时间表。

答案 1 :(得分:1)

使用ListField:

options = models.ListField()