Пользовательское разрешение Django не назначается вновь созданному пользователю
Это кажется довольно тривиальным, но я не могу понять, что я делаю неправильно. Я проверил несколько постов в SO, которые звучали похоже, но проблема, очевидно, кроется в другом месте.
У меня есть пользовательское разрешение на моей модели, can_key
, и оно зарегистрировано правильно. Когда я пытаюсь add
предоставить это разрешение вновь созданному пользователю, оно не добавляется.
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Permission
def create_dummy_user(self, username):
username = 'dummy_user'
user = get_user_model().objects.create(username=username, password='asdf4321')
user.save()
user = get_user_model().objects.get(username=username)
permission = Permission.objects.get(codename="can_key")
print(permission)
user.user_permissions.add(permission)
user = get_user_model().objects.get(username=username)
print(f"{user.username} is_active - {user.is_active}")
print(f"{user.username} has perm {permission.codename} - {user.has_perm(permission)}")
return user
Вывод на печать
test_web | main_app | record case | Can key record case
test_web | dummy_user is_active - True
test_web | dummy_user has perm can_key - False
Итак, пользователь был создан, разрешение существует / получено, но разрешение не добавляется. Почему?
Вам следует просмотреть документацию Django по кэшированию разрешений. нажмите для ответа на ваш вопрос