2017-10-06 8 views
0

私は電子健康記録ソフトウェアを構築しています。私の意見の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。移行フォルダを削除してモデルを複数回移行しましたが、nullIntegrityErrorが残っています。私はまた、私のデータベース内の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()を追加しました。私はエラーの背後にある理由を説明しているかどうかはわかりませんが、それにもかかわらず追加しています。カラム内の

答えて

0

null値は「DATE_OF_BIRTHは、」あなたはDOB列に任意の値を保存していない可能性があります-NULL制約

に違反し、あなたはNULL値を許可する必要があります。あなたはまた、あなたのテーブルでDOB列がnullことができますことを確認する必要があり

DOB = models.DateField(auto_now = False, null = True) 

に変更する必要があります。

関連する問題