1

現在、Django 1.2 から 1.4 へのアップグレードを試みていますが、Django がアップグレードでフォームの検証をより厳密にすることを決定したかのように、フォームにフィールドがないことを訴える多数の "Caught FieldError" メッセージに遭遇しています。

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)

これは django/forms/models.py の 207 行目あたりです。

どうやらエラーは Unknown field であり、FieldError ではなく、申し訳ありません。

4

0 に答える 0