ValueError - не возвращал объект HttpResponse. - В удаленном виде Django - PullRequest
0 голосов
/ 13 марта 2019

Я получаю ValueError при удалении пользователя

Ошибка -

ValueError at / employee / delete / 31 /

Представление 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.

1 Ответ

0 голосов
/ 13 марта 2019

Вот что я сделал.Но не знаю, правильный ли это подход

class EmployeeDeleteView(LoginRequiredMixin, generic.DeleteView):
    model = User
    template_name = 'employee/employee_confirm_delete.html'
    context_object_name='employees'


    def delete(self, request, *args, **kwargs):
        # Tab Opts Checking
        if request.user.userprofile.user_company.company_tab_opts:
            return redirect('admin_employee')
        self.object = self.get_object()
        self.object.userprofile.soft_delete()
        messages.success(request, 'Employee Deleted Successfully.')
        return HttpResponseRedirect(reverse('admin_employee'))
...