Как передать поле формы без заполнения в Django? И добавить дополнительное поле для ответа?
Я хочу сделать форму регистрации информации о пациенте. Я сделал model.py и form.py, но когда я перехожу к использованию, я не могу передать форму без заполнения. Например, на этом изображении evlilik tarihi означает дату брака, evlilik tarihi 2 означает вторую дату брака, когда я заполняю форму, я хочу оставить пустым поле evlilik tarihi 2. Но всегда получаю эту ошибку "TypeError: init() got an unexpected keyword argument 'blank'". Я использовал null=True, blank=True, но ничего. Как я могу передать поле формы без заполнения.
И второй вопрос, я сделал три поля формы для нескольких браков, но есть ли способ, как я могу добавить кнопку в это поле брака, и кто-то имел второй или третий брак, он может легко добавить кнопку и сообщить мне дату брака. Как я могу это сделать?
Form.py
class HastaBilgiForm(forms.ModelForm):
class Meta:
model = HastaBilgi
fields = '__all__'
widgets = {
'hasta_ad_soyad' : forms.TextInput(attrs={'class': 'form-control'}),
'hasta_dogum_tarihi' : forms.TextInput(attrs={'class': 'form-control'}),
'hasta_dogum_yeri' : forms.TextInput(attrs={'class': 'form-control'}),
'evlilik_tarihi_1' : forms.TextInput(attrs={'class': 'form-control'}),
'evlilik_tarihi_2' : forms.TextInput(attrs={'class': 'form-control'}),
'evlilik_tarihi_3' : forms.TextInput(attrs={'class': 'form-control'}),
'bosanma_tarihi_1' : forms.TextInput(attrs={'class': 'form-control'}),
'bosanma_tarihi_2' : forms.TextInput(attrs={'class': 'form-control'}),
'bosanma_tarihi_3' : forms.TextInput(attrs={'class': 'form-control'}),
'ogrenim_durumu' : forms.Select(choices=choices2, attrs={'class': 'form-control'}),
'meslek' : forms.TextInput(attrs={'class': 'form-control'}),
'kan_grubu' : forms.Select(choices=choices1, attrs={'class': 'form-control'}),
'boy' : forms.TextInput(attrs={'class': 'form-control'}),
'kilo' : forms.TextInput(attrs={'class': 'form-control'}),
'max_kilo' : forms.TextInput(attrs={'class': 'form-control'}),
'max_kilo_tarih' : forms.TextInput(attrs={'class': 'form-control'}),
'nereden_geldi' : forms.Textarea(attrs={'class': 'form-control'}),
'onceki_homeopati_tedavisi' : forms.Textarea(attrs={'class': 'form-control'}),
'gelis_sikayeti' : forms.Textarea(attrs={'class': 'form-control'}),
}
Model.py
class HastaBilgi(models.Model):
hasta_ad_soyad = models.CharField(max_length=255)
hasta_dogum_tarihi = models.CharField(max_length=255)
hasta_dogum_yeri = models.CharField(max_length=255)
evlilik_tarihi_1 = models.CharField(max_length=255)
evlilik_tarihi_2 = models.DateField()
evlilik_tarihi_3 = models.DateField()
bosanma_tarihi_1 = models.DateField()
bosanma_tarihi_2 = models.DateField()
bosanma_tarihi_3 = models.DateField()
ogrenim_durumu = models.CharField(max_length=255)
meslek = models.CharField(max_length=255)
kan_grubu = models.CharField(max_length=255)
boy = models.CharField(max_length=255)
kilo = models.CharField(max_length=255)
max_kilo = models.CharField(max_length=255)
max_kilo_tarih = models.CharField(max_length=255)
nereden_geldi = models.CharField(max_length=255)
onceki_homeopati_tedavisi = models.CharField(max_length=255)
gelis_sikayeti = models.CharField(max_length=255)
def __str__(self):
return self.hasta_ad_soyad
Похоже, что вам нужно обновить вашу модель.
evlilik_tarihi_2 = models.DateField(null=True, blank=True)
и т.д. После внесения этих изменений вам нужно будет запустить makemigrations
и migrate
.
Вы должны разрешить всем полям из "красной коробки" с изображения быть пустыми и обнуляемыми. В вашем случае:
class HastaBilgi(models.Model):
... # some staff before
evlilik_tarihi_1 = models.CharField(max_length=255, null=True, blank=True)
evlilik_tarihi_2 = models.DateField(null=True, blank=True)
evlilik_tarihi_3 = models.DateField(null=True, blank=True)
bosanma_tarihi_1 = models.DateField(null=True, blank=True)
bosanma_tarihi_2 = models.DateField(null=True, blank=True)
... # some staff after
не забудьте выполнить эту команду в командной строке:
python manage.py makemigrations
и после него:
python manage.py migrate
Кстати, вы смешиваете поля evlilik_tarihi
data
и text
. Через некоторое время это может действительно запутать, особенно если переопределить его на text-widget вместо data-widget.