Django 获得';PostPagos';对象没有属性';清洁数据';在窗体上添加验证时出错

Django 获得';PostPagos';对象没有属性';清洁数据';在窗体上添加验证时出错,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我一直在尝试在日历选择器中选择的日期上添加验证,其想法是,如果用户选择将来的日期,则会收到一条消息,说明该日期不能是将来的日期。 这是我迄今为止尝试过的事情之一: views.py forms.py models.py 回溯 fecha=self.clean\u data.get('fecha')应该是clean\u data 始终相信错误消息。它的意思就是它所说的。谢谢!在实现了您的建议后,我还发现了一些其他错误,但我已经修复了它们,现在它可以正常工作了!,我现在遇到的问题是错误消息没有显示在

我一直在尝试在日历选择器中选择的日期上添加验证,其想法是,如果用户选择将来的日期,则会收到一条消息,说明该日期不能是将来的日期。

这是我迄今为止尝试过的事情之一:

views.py

forms.py

models.py

回溯


fecha=self.clean\u data.get('fecha')
应该是
clean\u data


始终相信错误消息。它的意思就是它所说的。

谢谢!在实现了您的建议后,我还发现了一些其他错误,但我已经修复了它们,现在它可以正常工作了!,我现在遇到的问题是错误消息没有显示在HTML中,无论如何,感谢您的解决方案。
class PagosCreate(CreateView):
    form_class = PostPagos
    template_name = "AC/add_expense.html"

    def form_valid(self, form):
        object = form.save(commit=False)
        object.startweek, object.endweek = self.weekdatetimeconverter(
            object.semana)
        object.save()
        return super(PagosCreate, self).form_valid(form)

    def weekdatetimeconverter(self, semana):
        d = semana
        startweek = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
        endweek = datetime.datetime.strptime(d + '-0', "%Y-W%W-%w")
        return (startweek, endweek)
class PostPagos(forms.ModelForm):

    def clean(self):

        fecha = self.clean_data.get('fecha')
        today = datetime.datetime.today()
        if fecha > today:
            raise forms.ValidationError(
                'La Feha no puede ser mayor al día de hoy')
        return self.cleaned_data

    class Meta:
        model = Pagos
        fields = ('carro', 'pago', 'fecha', 'semana', 'renta')
        widgets = {'fecha': forms.DateInput(attrs={'type': 'date'}),
                   'semana': forms.DateInput(attrs={'type': 'week'})
                   }
class Pagos(models.Model):

    carro = models.ForeignKey(
        Carros, on_delete=models.CASCADE, blank=False, null=False)
    pago = models.DecimalField(max_digits=6, decimal_places=2)
    fecha = models.DateField(
        auto_now=False, auto_now_add=False, blank=True, null=True)
    semana = models.CharField(max_length=20)
    startweek = models.DateField(
        auto_now=False, auto_now_add=False, blank=True, null=True)
    endweek = models.DateField(
        auto_now=False, auto_now_add=False, blank=True, null=True)
    renta = models.ForeignKey(
        Renta, on_delete=models.PROTECT, blank=False, null=False)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name_plural = "Pagos"

    def get_absolute_url(self):
        return reverse('pagos')
  File "C:\Users\jorge.lopez\.virtualenvs\Carros-ZVuxKBiy\lib\site-packages\django\forms\forms.py", line 377, in full_clean
    self._clean_form()
  File "C:\Users\jorge.lopez\.virtualenvs\Carros-ZVuxKBiy\lib\site-packages\django\forms\forms.py", line 404, in _clean_form
    cleaned_data = self.clean()
  File "C:\Users\jorge.lopez\Documents\Personal\Carros\carros\AC\forms.py", line 82, in clean
    fecha = self.clean_data.get('fecha')

Exception Type: AttributeError at /payments/add/
Exception Value: 'PostPagos' object has no attribute 'clean_data'