У объекта 'DateField' нет атрибута 'value_from_datadict'

Я везде искал ответ на этот вопрос, но я просто пытаюсь добавить виджет к моему DateField, созданному на моем models.py, где вы можете увидеть фактический календарь, как если бы вы делали это непосредственно через html с input type=date. Поскольку у меня несколько полей даты, это стало проблемой, потому что все они должны иметь тот же формат, что и остальная часть формы и виджет. Чувствую, что на вопрос уже был дан ответ, но ни один из ответов или вещей, которые я нашел, не дал правильного ответа.

forms.py
lass Form_InfoPersonal(ModelForm):
    class Meta:
        model = InfoPersonal
        fields = '__all__'
        widgets = {
            'Nombres_y_Apellidos_completos': forms.TextInput(attrs={'class':'form-control form-control-lg mt-3 ml-4 w-75','required':True}),
            'cargo_act': forms.TextInput(attrs={'class':'form-control form-control-lg mt-3 ml-4 w-75','required':True}),
            'Lugar': forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Fecha': forms.DateField(widget=NumberInput(attrs={'type':'date'})),
            'grado': forms.TextInput(attrs={'class':'form-control form-control-lg mt-3 ml-4 w-75','required':False}),
            'Edad' : forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Tipo_de_Sangre' : forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75','required':True}),
            'Estatura': forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Direccion_Domicilio_actual': forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),  
            'Manzana':forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Villa': forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'parroquia': forms.TextInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Telefono_Domicilio' : forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75' }),
            'Telefono_Celular': forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'Telefono_Familiar': forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            'cedula': forms.NumberInput(attrs={'class': 'form-control form-control-lg mt-3 ml-4 w-75', 'required':True}),
            

        }   
views.py
def formu_view(request):
    if request.method == 'POST':

        form = Form_InfoPersonal(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Su formulario ha sido llenado y guardado correctamente')
            return render(request, '')
    else:
        form= Form_InfoPersonal()
        
    return render(request, 'users/formu.html', context={'form':form})

Вы используете неправильный класс для виджета. Изменить

            'Fecha': forms.DateField(widget=NumberInput(attrs={'type':'date'})),

to

            'Fecha': forms.DateInput(widget=NumberInput(attrs={'type':'date'})),
                           ^^^^^^^^^

forms.DateField предназначен для объявления поля формы. У него нет метода value_from_datadict(), как того требует валидация. forms.DateInput - это виджет, используемый для ввода даты. Он имеет требуемый метод.

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