Как передать поле формы без заполнения в 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 

   

enter image description here

Похоже, что вам нужно обновить вашу модель.

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.

Вернуться на верх