def post(self, request, *args, **kwargs):
user = self.request.user
filter_string = self.request.POST.get('string')
delete = self.request.POST.get('delete', 'false')
if delete == 'true':
# even if the queryset is empty there are no problems
Filter.objects.filter(user=user, queryset=filter_string).delete()
return HttpResponseRedirect(self.get_success_url())
if filter_string:
name = self.request.POST.get('name')
if not re.match("^[\w\s,.]+$", name) or len(name) > 99:
messages.add_message(request,
messages.WARNING,
_("""Filter name can only contain letters, numbers, commas or periods.
Maximum length is 99 characters""")
)
return HttpResponseRedirect(self.get_success_url()[:-10])
typ = self.request.POST.get('typ')
check = Filter.objects.filter(user=user, typ=typ, queryset=filter_string)
if check.exists():
messages.add_message(request,
messages.WARNING,
_("You already have a saved filter for that querystring") +
": " + check.first().name)
return HttpResponseRedirect(self.get_success_url())
if Filter.objects.filter(user=user, name=name, typ=typ).exists():
messages.add_message(request, messages.WARNING,
_("You already have a saved filter with the name") + ": " + name)
return HttpResponseRedirect(self.get_success_url())
Filter(user=user, queryset=filter_string, typ=typ, name=name).save()
return HttpResponseRedirect(self.get_success_url())
评论列表
文章目录