Ограничение просмотра по разрешениям модели не работает в django

В основном у меня есть модель member и я хочу ограничить поиск членов разрешенными пользователями. Я использую следующее в соответствующем представлении

if request.user.has_perm('view_member'):
    context['user_list'] = get_user(q)

К сожалению, это не работает, даже если

a) Я даю пользователю это разрешение через интерфейс администратора

b) в моих тестах, которые выглядят примерно следующим образом

def test_user_search_view(self):
    self.client.login(username='testuser0', password='12345') # this is a user that was given the permission (see below)
    response = self.client.post(reverse('library:search'), data={'q': "Müller"})
    # Check our user is logged in
    self.assertEqual(str(response.context['user']), 'testuser0') # Works
    self.assertContains(response, "Max") # Fails, but Max should be there

Для дальнейших тестов я использовал режим отладки PyCharm, чтобы зайти в тест. Затем в консоли я выполнил следующее


>>> permission_view_user = Permission.objects.get(codename='view_member')
>>> test_user0.user_permissions.add(permission_view_user)
>>> test_user0.save() # For good luck
>>> user = get_object_or_404(User, pk=test_user0.pk)
>>> user.has_perm(permission_view_user)
False

Я бы ожидал здесь true.

Я забыл название приложения 🙈. Оно должно быть

if request.user.has_perm('appname.view_member'):
    context['user_list'] = get_user(q)
Вернуться на верх