Django ValueError: представление usermanager.views.group_perm не возвращало объект HttpResponse. Вместо этого он вернулся - PullRequest
3 голосов
/ 26 апреля 2020

Я создаю новостной сайт. Когда я пытаюсь удалить разрешение из группы, появляется та же ошибка. Коды над этой функцией практически одинаковы. Но они работают нормально. ):

if not request.user.is_authenticated:
    return redirect('my_login')


perm = 0
 #"request.user" means current logged User
for i in request.user.groups.all():
    if i.name == "masteruser": perm = 1

if perm == 0:
    error = "Access Denied"
    return render(request, 'back/error.html',{'error': error})



group = Group.objects.get(name=gname)

gperm = Permission.objects.get(codename=name)


group.permissions.remove(gperm)

return redirect('manage_permission')

1 Ответ

0 голосов
/ 26 апреля 2020

Здесь ваш оператор возврата находится внутри для l oop в функции group_perm

Пробел используется для обозначения блоков. как и другие языки, использующие фигурные скобки {,}.

def group_perm(request, name):
    for i in request.user.groups.all():
        if i.name == "masteruser": perm = 1

    if perm == 0:
        error = "Access Denied"
        return render(request, 'back/error.html', {'error': error})

    permission = Permission.objects.all()

    for group in Group.objects.filter(name=name):
        gperm = group.permissions.all()

    return render(request, 'back/group_perm.html', {'gperm': gperm, 'name': name, 'permission': permission})

РЕДАКТИРОВАТЬ: 1

Django ValueError: представление usermanager.views.group_perm не вернулось объект HttpResponse. Вместо этого он вернул None

Ответ на эту ошибку заключается в том, что ваш оператор return был внутри for l oop, следовательно, когда вы вызывали свою функцию, он возвращал None. Это было решено этим?

Теперь ваша другая функция будет выглядеть так:

def group_permission_del(request, gname, name):
    if not request.user.is_authenticated:
        return redirect('my_login')

    perm = 0
    # "request.user" means current logged User
    for i in request.user.groups.all():
        if i.name == "masteruser": perm = 1

    if perm == 0:
        error = "Access Denied"
        return render(request, 'back/error.html', {'error': error})

    group = Group.objects.get(name=gname)
    gperm = Permission.objects.get(codename=name)
    group.permissions.remove(gperm)

    return redirect('manage_permission')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...