2016-01-21 3 views

ответ

3

ListField не применяет тип данных, если вы не попросите его об этом. Однако, если вы это сделаете, тогда он должен быть единственным типом данных на данный момент. Например

Это работает:

import mongoengine as mdb 
class Stuff(mdb.Document): 
    things = mdb.ListField() 

s = Stuff(things=['1',2,[4,5]]) 
s.save() 

это бросает TypeError как это исполнение типа данных:

import mongoengine as mdb 
class Stuff(mdb.Document): 
    things = mdb.ListField(mdb.IntField()) 

s = Stuff(things=['1',2,[4,5]]) 
s.save() 

это бросает AttributeError как он ожидает поле в качестве первого аргумента:

import mongoengine as mdb 
class Stuff(mdb.Document): 
    things = mdb.ListField([mdb.IntField(),mdb.StringField(),mdb.ListField()]) 

s = Stuff(things=['1',2,[4,5]]) 
s.save() 

Я вижу, что последний пример полезен, поэтому вы можете t в файл an issue по проекту репо.

Смежные вопросы