我们目前正在尝试从Django 1.2升级到1.4,但是我们遇到了大量的“Caught FieldError”消息抱怨表单中缺少字段,几乎就像Django决定变得更加严格关于验证表单升级。
在1.3中添加了一个新的字段验证代码块,它似乎导致了错误,如果块被取出,一切都正常工作。是否有任何严重后果要求删除此额外验证?
我们删除的代码是:
opts.exclude, opts.widgets, formfield_callback)
# make sure opts.fields doesn't specify an invalid field
none_model_fields = [k for k, v in fields.iteritems() if not v]
missing_fields = set(none_model_fields) - \
set(declared_fields.keys())
if missing_fields:
message = 'Unknown field(s) (%s) specified for %s'
message = message % (', '.join(missing_fields),
opts.model.__name__)
raise FieldError(message)
这是来自第207行的django / forms / models.py
显然错误是Unknown字段,没有捕获到FieldError,我很抱歉。