У меня есть пользовательская модель пользователя и модель профиля пользователя.
class User(AbstractUser):
"""Custom User authentication class to use email as username"""
username = None
email = models.EmailField(verbose_name='email', max_length=255, unique=True,
error_messages={
'unique': _(
"A user is already registered with this email address"),
}, )
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
class UserProfile(models.Model):
user = models.OneToOneField(User, to_field='email', on_delete=models.CASCADE)
emp_id = models.CharField(max_length=20, blank=False, default='0', null=False)
department = models.CharField(max_length=50, blank=True, default='', null=True)
Я пытаюсь написать сериализатор, который объединяет обе эти модели, создает вложенный JSON.
например:
{
"email":"user@gmail.com",
"is_active":true,
"profile":
{
"emp_id":2,
"department":2
}
}
Это то, что я пытался сделать
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields = ('id', 'user', 'emp_id', 'department')
class UserPairSerializer(serializers.ModelSerializer):
profile = UserProfileSerializer(read_only=True)
class Meta:
model = User
fields = ('id', 'email', 'is_active', 'profile')
Но по какой-то причине в моем ответе нет ни поля profile
, ни ошибок , Я пытался следовать этой документации: https://www.django-rest-framework.org/api-guide/relations/
В чем проблема и как мне ее решить?