Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 按需向文档中添加字段_Django_Mongodb_Mongoengine - Fatal编程技术网

Django 按需向文档中添加字段

Django 按需向文档中添加字段,django,mongodb,mongoengine,Django,Mongodb,Mongoengine,假设我有这些文件: from mongoengine import Document, EmbeddedDocument, fields import datetime class EmbeddedColumn(EmbeddedDocument): created = fields.DateTimeField(default=datetime.datetime.now) class Dattum(Document): datasource_id = fields.IntF

假设我有这些文件:

from mongoengine import Document, EmbeddedDocument,  fields
import datetime

class EmbeddedColumn(EmbeddedDocument):
    created = fields.DateTimeField(default=datetime.datetime.now)


class Dattum(Document):
    datasource_id = fields.IntField(required=True)
    date_modified = fields.DateTimeField(default=datetime.datetime.now)
    point = fields.GeoPointField()
    columns = fields.ListField(fields.EmbeddedDocumentField(EmbeddedColumn))
在运行时,我需要根据一系列查询向某些实例添加一些字段:

for row in csv_attach:
    dato = Dattum(datasource_id=datasource.pk)

    for column in columns:
        col_dict = model_to_dict(column)
        col_dict.pop('id')
        ecol = EmbeddedColumn(**col_dict)
        dato.columns.append(ecol)

        if ecol.geodata_type=='point':
            local_search = gmaps.local_search('%s %s' %(ecol.value, region))
            results = local_search['responseData']['results']
            result_len = 

            if len(results) == 1:
                result = results[0]
                #dato.point(result['lat'], result['lng'])
                dato.geojson = geojson.Point(dato.point)

    dato.save()
当我检索一些Dattum时,我看到它有正确的列,但是no列有从
model\u到
的字段,dato没有属性geojson

也许我对mongoengine要求太多的魔法,也许有一个合适的方法来解决这个问题。
有指针吗?

此功能在mongoengine中尚不可用。
尽管似乎有关于

的讨论,但该功能在mongoengine中尚不可用。
尽管关于

似乎存在争议,但我同意dcrosta的观点-使用DictField而不是嵌入式文档-您在创建日期没有验证,只是您可以灵活地存储数据,与嵌入式字段相同。

我同意dcrosta的观点-使用DictField而不是嵌入式文档-您在创建日期没有验证,只是您可以获得一个灵活的数据存储,与嵌入式字段相同。

Mongoengine有一个
DictField
,您可以在其中存储任何您想要的内容。不过,你必须把它当作一本带方括号的字典来使用。我不明白你所说的“字段分组”是什么意思。Mongoengine有一个
DictField
,你可以在其中存储任何你想要的内容。不过,你必须把它当作一本带方括号的字典来使用。我不明白你所说的“字段分组”是什么意思