Python Flask models.save()引发TypeError:_validate()缺少1个必需的位置参数:“value”

Python Flask models.save()引发TypeError:_validate()缺少1个必需的位置参数:“value”,python,flask,mongoengine,Python,Flask,Mongoengine,我试图向属性添加列表,但当我试图保存数据库时,它引发了下面的异常。我的代码有问题吗?我之前修改了模型,添加了新的属性saved_jadwal_id。我认为这不会引起任何问题,因为在执行jadwal.save之前,我已经尝试为它设置值,并且可以打印值。我真的需要迁移吗?多谢各位 jadwal = Jadwal.objects(id=jadwal_id).first() eventIds = [] # courses = data['jadwals'] courses = getCourses()

我试图向属性添加列表,但当我试图保存数据库时,它引发了下面的异常。我的代码有问题吗?我之前修改了模型,添加了新的属性saved_jadwal_id。我认为这不会引起任何问题,因为在执行jadwal.save之前,我已经尝试为它设置值,并且可以打印值。我真的需要迁移吗?多谢各位

jadwal = Jadwal.objects(id=jadwal_id).first()

eventIds = []
# courses = data['jadwals']
courses = getCourses()

for course in courses:
    id = insert_event(calendar, course)
    eventIds.append(id)

jadwal.saved_jadwal_ids = eventIds

jadwal.save()
Jadwal.py:

class Jadwal(Document):
    user_id = ReferenceField('User')
    jadwals = ListField(EmbeddedDocumentField(JadwalData))
    created_at = DateTimeField(default=datetime.now)
    saved_jadwal_ids = ListField(StringField)
错误:

Traceback (most recent call last):
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\Anisha\RISTEK BISMILLAH\sunjadv2-server\app.py", line 631, in add_jadwal_to_calendar
    jadwal.save()
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\mongoengine\document.py", line 362, in save
    self.validate(clean=clean)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\mongoengine\base\document.py", line 377, in validate
    field._validate(value)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\mongoengine\base\fields.py", line 234, in _validate
    self.validate(value, **kwargs)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\mongoengine\fields.py", line 857, in validate
    super(ListField, self).validate(value)
  File "c:\users\anisha\appdata\local\programs\python\python37\lib\site-packages\mongoengine\base\fields.py", line 431, in validate
    self.field._validate(v)
TypeError: _validate() missing 1 required positional argument: 'value'
尝试替换:

saved_jadwal_ids = ListField(StringField)
与:

我可以用这个片段重现并修复错误:

from mongoengine import Document, StringField, ListField

class Example(Document):
    meta = {'collection': 'examples'}
    saved_jadwal_ids = ListField(StringField)  # should be StringField()

e = Example()
e.saved_jadwal_ids = ['not','ok']
e.save()

TypeError: _validate() missing 1 required positional argument: 'value'
尝试替换:

saved_jadwal_ids = ListField(StringField)
与:

我可以用这个片段重现并修复错误:

from mongoengine import Document, StringField, ListField

class Example(Document):
    meta = {'collection': 'examples'}
    saved_jadwal_ids = ListField(StringField)  # should be StringField()

e = Example()
e.saved_jadwal_ids = ['not','ok']
e.save()

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