我试图从mysql表中过滤日期。如果我没有把日期过滤器...我的搜索表单工作正常...当我把那个日期过滤器它基本上失败了form.is_valid()语句。 没有过滤器 created_at ,它工作正常 我已经尝试了 created_at 的所有过滤器类型 其中一些给出了这个错误,另一个没有给出错误,但是,搜索过滤器都没有给出任何结果......
这是我得到的错误:
ValueError: Cannot use None as a query value
forms.py
class AllTablesForm(forms.Form):
title = forms.CharField(label='', max_length=250, required=False,
widget=forms.TextInput(attrs={'placeholder': 'Title'}))
url = forms.CharField(label='', max_length=250, required=False,
widget=forms.TextInput(attrs={'placeholder': 'Url'}))
description = forms.CharField(label='', required=False,
widget=forms.TextInput(attrs={'placeholder': 'Description'}))
created_at = forms.DateTimeField(label='', required=False,
widget=forms.TextInput(attrs={'placeholder': 'Created At'}))
我在哪里搜索表单 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']
created_at = cd['created_at']
# print created_at
query = t.objects.filter(title__icontains=title,
url__icontains=url,
description__icontains=description,
created_at__gte=created_at)
return render(request, 'search/search_table.html', {'tbl_name': table_name,
'form': form,
'details': query})
else:
form = AllTablesForm()
return render(request, 'search/search_table.html', {'form': form})
现在我有 created_at__gte ,我得到了这个错误。它基本上说我的 form.is_valid()无效。
例如:如果我输入 created_at__exact ,我就不会收到任何错误...但我的搜索无效...我没有看到任何结果......而我的其他过滤器都没有工作。
如果我从过滤器中取出 created_at ...搜索过滤器有效,它会给我结果。
请帮帮我。谢谢
ADDED
哦差点忘了。列出字段时显示的日期格式为: 的 九月19,2017,11:12 a.m。
mysql created_at列中的格式为: 2017-09-08 12:16:38
我确实希望创建类似phpmyadmin过滤器的过滤器。 弹出窗口并显示日历以选择日期和时间范围。