1

次のような Django モデルがあります。

class Registration(models.Model):
    appId =models.CharField(max_length = 100)
    registeredUser = models.ForeignKey('auth.User', null=True, blank=True)

python manage.py シェルを使用して Django シェル インターフェイスに移動し、次のように appId フィールド (必須フィールド) を渡さずに登録オブジェクトを作成しようとすると:

Registration.objects.create(registeredUser = userobject)

エラーを表示せずに登録オブジェクトを作成しますappId (null 不可のフィールド) を None に設定することはできません! .それはどのように起こっているのですか?なぜエラーが発生しないのですか?私が間違っていること、または何かが足りないのですか?

4

1 に答える 1

3

RegistrationオブジェクトのappIDの値は''(つまり、空の文字列)になります。

また、nullオプションのドキュメントをご覧ください。nullオプションがないからといって、フィールドがnull不可であることを意味するわけではありません。代わりに、null=True空の値がデータベースにNULLとして格納されることを意味します。

空の文字列を避けたい場合は、そのモデルフィールドの検証にルールを追加するか、フォームを使用してください。

于 2012-08-03T08:32:03.210 に答える