私はFoo
というモデルを持っています。存在しないフィールド名を割り当てても、このモデルの新しいインスタンスを作成してデータベースに保存できます。例えば:Djangoモデルのこの誤って入力されたフィールド名が例外をスローしないのはなぜですか?
foobar = Foo.objects.create()
foobar.abcdefg = True # The field abcdefg does not exist!
foobar.full_clean()
foobar.save()
存在しないフィールドに代入するときにDjangoが例外をスローしないのはなぜですか?少なくともfull_clean
の間、例外をスローするようにするにはどうすればよいですか?
[__slots__](http://book.pythontips.com/en/latest/__slots__magic.html)を使用すると、いつでも新しい属性を追加することができなくなります。 – Flimm
それは良い点です。しかし、Djangoがあなたのモデルに追加する属性をチェックし、 '__slots__'にそれらの属性を含めて、まだ動作していることを確認する必要があります。 – FamousJameous