enc_id
にNULLを許可する必要がありますが、値がnullでない場合は、これらの値を一意にする必要があります。別のインスタンスを追加しようとDjangoは重複するキー値NULLを挿入できません
class Intake(models.Model):
id = models.AutoField(primary_key=True)
enc_id = models.IntegerField(blank=True, null=True, unique=True)
enc_date = models.DateField(null=True)
enrollment = models.ForeignKey('Enrollment')
エラーenc_id
なし::ここに私のモデルです
django.db.utils.IntegrityError: ('23000', "[23000] [FreeTDS][SQL Server]Violation of UNIQUE KEY constraint 'UQ__caseload__E136D21F4222D4EF'. Cannot insert duplicate key in object 'dbo.caseload_intake'. The duplicate key value is (<NULL>). (2627) (SQLExecDirectW)")
私は(thisといくつかの解決Djangoの問題を含む)読んだによると、blank=True, null=True, unique=True
を持つべきです重複するNULLを持つことができますが、行ってはいけません。ちょうど私のDBを再作成しましたが、それでも整合性エラーが発生します。
私はDjango 1.10とMS SQL Server 10を実行しています。それは私に多くの意味がありません
カラムにユニークなインデックスがあります。つまり、1つ以上のヌルを持つことはできません。それがどのように機能するかです。このための「回避」はありません。複数のNULL行を持つためには、一意索引を削除する必要があります。 –