Что нужно для создания плоского представления сериализатора для чтения и записи в среде Django REST? Документы относятся к «плоскому представлению» (конец раздела http://django-rest-framework.org/api-guide/serializers.html#dealing-with-nested-objects), но не предлагайте примеры или что-либо, кроме предложения использовать RelatedField
подкласс.
Например, как обеспечить плоское представление отношения User
и UserProfile
ниже?
# Model
class UserProfile(models.Model):
user = models.OneToOneField(User)
favourite_number = models.IntegerField()
# Serializer
class UserProfileSerializer(serializers.ModelSerializer):
email = serialisers.EmailField(source='user.email')
class Meta:
model = UserProfile
fields = ['id', 'favourite_number', 'email',]
Вышеупомянутое UserProfileSerializer
не позволяет писать в поле email
, но я надеюсь, что оно достаточно хорошо выражает намерение. Итак, как должен быть построен «плоский» сериализатор для чтения и записи, чтобы разрешить запись атрибута email
в UserProfileSerializer
? Возможно ли это сделать при создании подкласса ModelSerializer?
Спасибо.