私は電子健康記録ソフトウェアを構築しています。私の意見の1つに、患者の基本情報を取り込むフォームが含まれています。"date_of_birth"列のNULL値を固定するとNULL以外の制約に違反しています
forms.py
from django import forms
from nesting.models import Identity_unique
class Identity_Form(forms.ModelForm):
NIS = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter NIS',
'class' : 'form-control'
}
)
)
First_Name = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter First Name',
'class' : 'form-control'
}
)
)
Last_Name = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter Last Name',
'class' : 'form-control'
}
)
)
Residence = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter Address',
'class' : 'form-control'
}
)
)
DOB = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter Date of Birth',
'class' : 'form-control'
}
)
)
class Meta:
model = Identity_unique
fields = ('NIS', 'First_Name', 'Last_Name', 'Residence', 'DOB',)
のModelForm
models.py
from django.db import models
from django.contrib.auth.models import User
from Identity import settings
import datetime
# Create your models here.
class Identity_unique(models.Model):
NIS = models.CharField(max_length = 200, primary_key = True)
user = models.ForeignKey(settings.AUTH_USER_MODEL)
Timestamp = models.DateTimeField(auto_now = True)
First_Name = models.CharField(max_length = 80, null = True, )
Last_Name = models.CharField(max_length = 80, null = True,)
Residence = models.CharField(max_length = 80, blank = True)
DOB = models.DateField(auto_now = False)
のためのデータスキーマ残念ながら、私はこの電子を得続けます私は、データベースはPostgreSQL 9.6を使用しています
IntegrityError at /nesting/
null value in column "date_of_birth" violates not-null constraint
DETAIL: Failing row contains (Q234934, 2, 2017-10-06 19:17:42.084063+00, Andre, James, [email protected], null, 1991-12-10).
:私は、サーバーに保存されたデータを提出しようとするたびにrror。移行フォルダを削除してモデルを複数回移行しましたが、null
とIntegrityError
が残っています。私はまた、私のデータベース内のdbテーブルID_uniqueを探していますが、私はそれを見つけることができません。誕生日フィールドをdate_of_birth = models.DateField(max_length = 100, default = 0)
からDOB = models.DateField(auto_now = False).
に変更したため、null制約付きの列を削除するためにその作業を行っていました。エラーでわかるように、null
の列があり、これは許可されていません。
当初フィールドにはdate_of_birth = models.DateField(max_length = 100, null = True)
を使用しました。デフォルト値を追加するよう促され、bash端末にtimezone.now()
を追加しました。私はエラーの背後にある理由を説明しているかどうかはわかりませんが、それにもかかわらず追加しています。カラム内の