Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Djongo重新定义了ArrayModelField的结构_Django_Mongodb_Django Models_Djongo - Fatal编程技术网

Django Djongo重新定义了ArrayModelField的结构

Django Djongo重新定义了ArrayModelField的结构,django,mongodb,django-models,djongo,Django,Mongodb,Django Models,Djongo,我正在定义使用。它看起来很棒,但是ArrayModelField的问题是我只能将其添加为对象数组,而不仅仅是平面列表。是否有任何方法可以将其添加为平面列表 示例: # models.py from djongo import models class Option(models.Model): option = models.CharField(max_length=100) class Meta: abstract = True def __str

我正在定义使用。它看起来很棒,但是
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)
使用这个,我可以创建一个文档,如下所示

但我想用这种格式保存它

我希望视图也能在Django管理面板中解析

我现在有什么办法可以做到这一点吗

提前感谢。

使用列表字段:


options=models.ListField()。话虽如此,您始终可以使用
ListField
并为管理面板编写自定义视图,这是目前有效的解决方案。也看不到开发人员会在任何时间线内修复该问题。

我不明白,如果您需要的格式是单独的模型,为什么需要单独的模型。为什么不是一个简单的ArrayField?我认为ArrayField是专为Postgres设计的。无论如何,我在Djongo找不到ArrayField。谢谢你的回答,Cob。不幸的是,我认为,这在Django管理面板中无法解析。我希望这是在管理面板中查看。为了能够在管理面板中查看它,您必须定义ModelForm类。在这里你可以看到如何做:是的!但如果模型表单类是一个平面列表,它就不起作用了。我最近也遇到了同样的问题,但换成了ArrayField,它似乎工作得很好。请检查:非常感谢,科布!我来看看。