【问题标题】:form validation with django CBV FormView使用 django CBV FormView 进行表单验证
【发布时间】:2017-07-06 15:45:18
【问题描述】:

谁能解释我如何验证我的表单,这是相当简单的东西,有些我怎么能,我只是不明白,需要验证我的选择字段以便我可以返回和显示数据,有人可以解释如何这样做

from django import forms
from statistics.choices import MONTH_CHOICES


class StatisticsForm(forms.Form):
    invoice_year = forms.CharField(max_length=255, required=False,
                                      widget=forms.TextInput(attrs={'placeholder': 'Search Year'}))
    month_choice = forms.ChoiceField(choices=MONTH_CHOICES)

【问题讨论】:

  • 验证在表单类中执行,而不是在视图类中。
  • (facepalm),让我更新一下我的问题
  • 您需要检查什么?
  • 你这是什么意思?表单会根据字段的默认规则自动清理/验证。
  • @TomasWalch,我才意识到这不是我想要解决的问题,我需要检查我的view 那里有问题

标签: django django-forms django-class-based-views


【解决方案1】:
from django import forms
from statistics.choices import MONTH_CHOICES


class StatisticsForm(forms.Form): 
    invoice_year = forms.CharField(max_length=255, required=False,
                                  widget=forms.TextInput(attrs={'placeholder': 'Search Year'}))
    month_choice = forms.ChoiceField(choices=MONTH_CHOICES)

    def clean_invoice_year(self):
        invoice_year_val = self.cleaned_data.get('invoice_year')
        if condition_not_satisfied:
            raise forms.ValidationError('Invalid invoice year')
        return invoice_year_val

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多