相关疑难解决方法(0)

Django中的cleaning_data和cleaning_data.get之间的区别

我见过一些示例代码:

    def clean_message(self):
    message = self.cleaned_data['message']
    num_words = len(message.split())
    if num_words < 4:
        raise forms.ValidationError("Not enough words!")
    return message
Run Code Online (Sandbox Code Playgroud)

和一些例子:

def clean(self):
    username = self.cleaned_data.get('username')
    password = self.cleaned_data.get('password')
    ...
    self.check_for_test_cookie()
    return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)

这两者的区别是什么?

django-forms

14
推荐指数
2
解决办法
2万
查看次数

Django self.cleaned_data Keyerror

我正在写一个Django网站,我正在为表单编写自己的验证:

class CreateJobOpportunityForm(forms.Form):
    subject = forms.CharField(max_length=30)
    start_date = forms.DateField(widget=SelectDateWidget)
    end_date = forms.DateField(widget=SelectDateWidget)

    def clean_start_date(self):
        start_date = self.cleaned_data['start_date']
        end_date = self.cleaned_data['end_date']
        if start_date > end_date :
            raise forms.ValidationError("Start date should be before end date.")
        return start_date
Run Code Online (Sandbox Code Playgroud)

但是当start_date小于end_date时,它会说:

KeyError at /create_job_opportunity
'end_date'
Run Code Online (Sandbox Code Playgroud)

为什么不认识'end_date'钥匙?

python django django-forms

3
推荐指数
1
解决办法
6676
查看次数

标签 统计

django-forms ×2

django ×1

python ×1