現在models.py
私は持っています
class ModelName(models.Model):
rowname = models.CharField(max_length=100, blank = True, unique=True)
これは、同じ値がデータベースに2回送信されないことを確認する限り不思議ですが、重複する値が空の文字列である場合に、一意にエラーを発生させない方法はありますか?unique
例外的な議論をしますか?
現在models.py
私は持っています
class ModelName(models.Model):
rowname = models.CharField(max_length=100, blank = True, unique=True)
これは、同じ値がデータベースに2回送信されないことを確認する限り不思議ですが、重複する値が空の文字列である場合に、一意にエラーを発生させない方法はありますか?unique
例外的な議論をしますか?
基本的に、この回答のアドバイスに従う必要があります。Djangoは一意性のために''
等しいと見なしますが、等しいと''
は見なしません。したがって、空の文字列の代わりに値を保存する必要があります。NULL
NULL
NULL
モデルNULL
を追加して、フィールドを allow に変更します。null = True
rowname = models.CharField(..., blank = True, null = True, unique = True)
空の文字列をNone
次の形式に変更します。
class ModelNameForm(forms.ModelForm):
class Meta:
model = ModelName
def clean_rowname(self):
return self.cleaned_data['rowname'] or None
class ModelNameAdmin(admin.ModelAdmin):
form = ModelNameForm