У меня есть две модели CustomUser и UserProfile.Как объединить поля двух разных моделей и создать ModelSerializer
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), max_length=254, unique=True, blank=True)
first_name = models.CharField(_('first name'), max_length=30, blank=True)
last_name = models.CharField(_('last name'), max_length=30, blank=True)
class UserProfile(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
owner_of = models.CharField(max_length=100, blank=True)
total_years= models.CharField(_('In Current Profession Since'),max_length=100,blank=True, null=True)
serializers.py:
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ('id', 'email','first_name', 'last_name',)
class ProfileSerializer(serializers.ModelSerializer):
user = AccountSerializer(read_only=True,required=False)
class Meta:
model = UserProfile
fields = ('user','owner_of','total_years','first_name','last_name','email')
Ошибка я получаю "Имя поля first_name
не действует для модели UserProfile
."
Как совместить две модели поля и сделать создание и обновление функции
Как сделать функцию обновления для полей в CustomUser через ProfileSerializer. –
У меня есть обновленный ответ. Пожалуйста, проверьте :) – Sagar
_KeyError_ ** user ** at 'user_data = validated_data.pop ('user')' –