feature/T2026-05-031 agregar multiples rfc's a un usuario
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
from rest_framework import serializers
|
||||
from .models import CustomUser
|
||||
from django.contrib.auth.models import Group
|
||||
from api.customs.models import Importador
|
||||
|
||||
class CustomUserSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
@@ -10,8 +11,12 @@ class CustomUserSerializer(serializers.ModelSerializer):
|
||||
|
||||
password = serializers.CharField(write_only=True)
|
||||
groups = serializers.PrimaryKeyRelatedField(queryset=Group.objects.all(), many=True, required=False)
|
||||
rfc = serializers.CharField(max_length=20, required=False, allow_blank=True)
|
||||
|
||||
rfc = serializers.PrimaryKeyRelatedField(
|
||||
queryset=Importador.objects.all(),
|
||||
many=True,
|
||||
required=False,
|
||||
pk_field=serializers.CharField(),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = CustomUser
|
||||
@@ -20,10 +25,28 @@ class CustomUserSerializer(serializers.ModelSerializer):
|
||||
|
||||
def create(self, validated_data):
|
||||
groups = validated_data.pop('groups', [])
|
||||
rfcs = validated_data.pop('rfc', [])
|
||||
password = validated_data.pop('password')
|
||||
user = CustomUser(**validated_data)
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
if groups:
|
||||
user.groups.set(groups)
|
||||
if rfcs:
|
||||
user.rfc.set(rfcs)
|
||||
return user
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
groups = validated_data.pop('groups', None)
|
||||
rfcs = validated_data.pop('rfc', None)
|
||||
password = validated_data.pop('password', None)
|
||||
for attr, value in validated_data.items():
|
||||
setattr(instance, attr, value)
|
||||
if password:
|
||||
instance.set_password(password)
|
||||
instance.save()
|
||||
if groups is not None:
|
||||
instance.groups.set(groups)
|
||||
if rfcs is not None:
|
||||
instance.rfc.set(rfcs)
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user