私はDjangoの1.1で、このようなモデルをしました:デフォルトでは、私は両方とも「NULL」と「ブランク」虚偽であることを読んでいるmodel.CharField( 'blank = False')はsave()で動作しますか?
class Booking(models.Model):
name = models.CharField(max_length=100)
。
だから、このようなテストで...
class SimpleTest(TestCase):
def test_booking_save(self):
b = Booking()
b.save()
...私は例外をスローする保存予想しました。しかし、それはしません。空の名前(PostgresとSQLite3)で新しいレコードを作成することはとても嬉しいようです。
私は、管理インターフェイスを介して、実際には "このフィールドは必須"で保存が失敗することに注意してください。
質問は以下のとおりです。
- は唯一の形態で適用される「ブランク」属性ですか?
- 解決策は、save()メソッドをオーバーライドし、len(name)!= 0を明示的にチェックする修正ですか?
- 私は一度理解したことが私の誤解を解決するものを誤解しましたか? Django Docsから
タイトルに対する回答は「いいえ」です。モデルで有効なデータを仮定し、検証をフォームに委ねるのが一般的な方法です。 –
http://stackoverflow.com/questions/6940499/how-can-you-create-a-non-empty-charfield-in-django –