【发布时间】:2019-08-03 23:26:57
【问题描述】:
我在删除用户时收到ValueError
错误 -
/employee/delete/31/ 处的 ValueError
视图 apps.employee.views.EmployeeDeleteView 没有返回 HttpResponse 目的。它返回 None 。
class EmployeeDeleteView(LoginRequiredMixin, generic.DeleteView):
model = User
template_name = 'employee/employee_confirm_delete.html'
context_object_name='employees'
def get(self, request, *args, **kwargs):
# Tab Opts Checking
if request.user.userprofile.user_company.company_tab_opts:
return redirect('admin_employee')
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
self.object.userprofile.soft_delete()
messages.success(request, 'Employee Deleted Successfully.')
return HttpResponseRedirect(reverse('admin_employee'))
这是错误的回溯
Internal Server Error: /employee/delete/31/
Traceback (most recent call last):
File "/home/.virtualenvs/apollo_django-njoxc1BQ/lib/python3.5/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/.virtualenvs/apollo_django-njoxc1BQ/lib/python3.5/site-packages/django/core/handlers/base.py", line 137, in _get_response
"returned None instead." % (callback.__module__, view_name)
ValueError: The view apps.employee.views.EmployeeDeleteView didn't return an HttpResponse object. It returned None instead.
【问题讨论】:
-
似乎在您的
get方法中,您在if条件之后返回redirect。但是如果你的if返回False你的get方法返回None。 -
如果你在get方法中的IF条件为假,你需要返回一些东西
-
哦,我明白了。我删除了
get方法并将if条件放入delete方法中。然后它工作了。感谢您的评论。但我不知道这是正确的方法
标签: django django-models django-forms django-templates django-views