Datefield传递None以发布数据形式的django形式

时间:2014-02-04 08:29:07

标签: django django-forms datefield

我有一个django表单,里面有一个日期字段

class SearchForm(Form):
    #otherifields
    birth_date = forms.DateField(widget=DateInput(attrs={'classs':'datepicker form-control'}))

在我看来,我得到表格发布数据

 post_data = form.cleaned_data

并尝试使用

访问日期
date = post_data['birth_date']

但无论我是否在模板上设置日期,值都是无。我在我的所有Django项目中使用this作为日期小部件,并且在我的ModelForms中工作正常。但它不会说错误的日期错误等。

我的django视图

def search(request):
    form = SearchForm(request.POST or None)
    if request.method == 'POST'::
        post_data = form.cleaned_data
        customers = Customer.objects.filter(first_name__icontains=post_data['first_name'],
                    last_name__icontains=post_data['last_name'],
                    middle_name__icontains=post_data['middle_name'],
                    gender=post_data['gender'],
                    email__icontains=post_data['email'],
                    telephone__icontains=post_data['telephone'],
                    work_phone__icontains = post_data['work_phone'],
                    mobile__icontains=post_data['mobile'],
                    address__icontains = post_data['address'],
                    region__icontains = post_data['region'],
                    state__icontains = post_data['state'],
                    municipality__icontains = post_data['municipality'],
                    postal_code__icontains = post_data['postal_code'],
                    country__icontains = post_data['country'],
        )
        if post_data['birth_date']:
            customers = customers.filter(birth_date=post_data['birth_date'])

#some other并返回

但如果我print post_data['birth_date']我总是得到无。可能有什么不对?我错过了表格吗?

1 个答案:

答案 0 :(得分:0)

您的代码段

if post_data['birth_date']:
    customers.filter(birth_date=post_data['birth_date'])

超出了search函数的范围。这也可能是它的价值为None

的原因