Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Mongodb 为什么可以';我不能直接分配列表字段的值吗?_Mongodb_Python 3.x_Mongoengine - Fatal编程技术网

Mongodb 为什么可以';我不能直接分配列表字段的值吗?

Mongodb 为什么可以';我不能直接分配列表字段的值吗?,mongodb,python-3.x,mongoengine,Mongodb,Python 3.x,Mongoengine,我在使用mongoengine(python3)创建新文档时遇到问题。似乎无法直接将列表添加到列表字段 我有以下设置: # CONNECTION AND SETUP: from mongoengine import * connect('mongoengine_testing', host='localhost', port=27017) class Chart(Document): instrument_ticker = StringField(max_length=40)

我在使用mongoengine(python3)创建新文档时遇到问题。似乎无法直接将列表添加到列表字段

我有以下设置:

# CONNECTION AND SETUP:

from mongoengine import *

connect('mongoengine_testing', host='localhost', port=27017)

class Chart(Document):
    instrument_ticker = StringField(max_length=40)
    chart_type = StringField(max_length=120)
    chart_name = StringField(max_length=120)
    x = ListField(StringField)
    y = ListField(StringField)
当我尝试添加这样的新图表文档时,它失败了:

## THIS DOESN'T WORK:

chart = Chart(
        instrument_ticker = 'EURUSD',
        chart_type = 'weekday_avg',
        chart_name = 'Average Weekday',
        x = ['1', '2', '3', '4', '5'],
        y = ['13', '12', '24', '55', '32']
)


### ERROR MESSAGE

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-17d67eea1df7> in <module>()
      4         chart_name = 'Average Weekday',
      5         x = ['1', '2', '3', '4', '5'],
----> 6         y = ['13', '12', '24', '55', '32']
      7 )

~/Development/python/mongoengine/mongo_env/lib/python3.4/site-packages/mongoengine/base/document.py in __init__(self, *args, **values)
    113                         field = self._fields.get(key)
    114                         if field and not isinstance(field, FileField):
--> 115                             value = field.to_python(value)
    116                     setattr(self, key, value)
    117                 else:

~/Development/python/mongoengine/mongo_env/lib/python3.4/site-packages/mongoengine/base/fields.py in to_python(self, value)
    324             self.field._auto_dereference = self._auto_dereference
    325             value_dict = {key: self.field.to_python(item)
--> 326                           for key, item in list(value.items())}
    327         else:
    328             Document = _import_class('Document')

~/Development/python/mongoengine/mongo_env/lib/python3.4/site-packages/mongoengine/base/fields.py in <dictcomp>(.0)
    324             self.field._auto_dereference = self._auto_dereference
    325             value_dict = {key: self.field.to_python(item)
--> 326                           for key, item in list(value.items())}
    327         else:
    328             Document = _import_class('Document')

TypeError: to_python() missing 1 required positional argument: 'value'

这是预期的行为吗?或者我遗漏了什么?

问题是我忘记了StringField后面的括号。。哎哟

class Chart(Document):
    ...
    x = ListField(StringField())
    y = ListField(StringField())
class Chart(Document):
    ...
    x = ListField(StringField())
    y = ListField(StringField())