По сути, у меня возникла проблема, связанная с тем, что у меня есть страница, использующая инфраструктуру отдыха, которая редактирует права пользователя (я использую пользовательское приложение django по умолчанию), изменяя группы или изменяя другие незначительные сведения, такие как имя и пароль.Тем не менее, когда я редактирую группу пользователей и только когда редактирую их, по какой-то причине права пользователя изменяются только после перезапуска сервера django, позволяя пользователю просматривать страницы django cms, которые он не должен видеть.После перезапуска сервера все разрешения работают нормально.
Я уже пытался принудительно обновить разрешения следующим образом:
for app in settings.INSTALLED_APPS:
create_permissions(apps.get_app_config(app.split(".")[-1]))
, но это не сработало.
На самом деле я понятия не имею, в чем причина проблемы, настолько, что я не уверен, какой код я мог бы здесь разместить, поэтому сомневаюсь, что выложу сериализатор остальных пользователей:
# -*- coding: utf-8 -*-
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
super(UserSerializer, self).__init__(*args, **kwargs)
self.fields['username'].label = u"Usuário"
self.fields['password'].label = u"Senha"
self.fields['first_name'].label = u"Nome Completo"
group_name = serializers.SerializerMethodField()
def get_group_name(self, obj):
return ", ".join(list(obj.groups.values_list('name',flat=True)))
def create(self, validated_data):
user = super(UserSerializer, self).create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user
def update(self, instance, validated_data):
user = super(UserSerializer, self).update(instance, validated_data)
if "password" in validated_data:
user.set_password(validated_data['password'])
user.save()
return user
class Meta:
model = User
fields = [
"id",
"first_name",
"username",
"password",
"group_name",
"groups",
"is_active",
]