django 2字段无效

时间:2017-09-27 14:57:47

标签: python django django-forms

当我尝试使用它们时,我的form中的2个字段无法正常工作。我总共有大约10个字段,它们都可以工作但是那些没有。

这是forms.py的一部分,其中的字段无效。

class AllTablesForm(forms.Form):
    title = forms.CharField(label='', max_length=250, required=False,
                            widget=forms.TextInput(attrs={'placeholder': 'Title'}))


    .......

    redirectstatus = forms.IntegerField(label='', required=False,
                                        widget=forms.TextInput(attrs={'placeholder': 'Redirect Status'}))
    created_at = forms.DateTimeField(label='', required=False, input_formats=["%Y-%m-%d"],
                                     widget=forms.TextInput(attrs={'placeholder': 'Created At'}))

redirectstatuscreated_at无效。
我的日期格式是这样的。

在MySQL表中:

2017-09-27 13:03:49

当我在django打印出来时:

September 27, 2017 - 15:59:21

,重定向的格式很简单。

200
300
...

我想让created_at类似于phpmyadmin日期搜索。

这是我的views.py

def search_form_table(request, pk):
    table_name = Crawledtables.objects.get(id=pk)
    t = create_model(table_name.name)

    if request.method == 'GET':
        form = AllTablesForm(request.GET)
        if form.is_valid():
            cd = form.cleaned_data
            title = cd['title']
            url = cd['url']
            description = cd['description']
            canonical = cd['canonical']
            robots = cd['robots']
            schematype = cd['schematype']
            redirectstatus = cd['redirectstatus']
            created_at = cd['created_at']
            query = t.objects.filter(title__icontains=title,
                                     url__icontains=url,
                                     description__icontains=description,
                                     canonical__icontains=canonical,
                                     robots__icontains=robots,
                                     schematype__icontains=schematype,
                                 redirectstatus__exact=redirectstatus,
                                     created_at__range=created_at)
            return render(request, 'search/search_table.html', {'tbl_name': table_name,
                                                                'form': form,
                                                                'details': query,
                                                                'detail': True})

        else:
            form = AllTablesForm()
    return render(request, 'search/search_table.html', {'form': form})

ADDED

如果我没有将created_at放在过滤器中,只留下redirectstatus并在重定向搜索中搜索200,则它不会给我任何内容,如果放created_at在过滤器中它给我错误:

ValueError: Cannot use None as a query value

0 个答案:

没有答案