使用三个嵌套模型创建模型实例? Django 休息 3.1
Creating Model instance with three nested models? Django Rest 3.1
我有 3 个连接模型:User -> UserProfile -> BuyerProfile,当用户创建帐户时,我希望创建一个 User,然后是 UserProfile,然后是 BuyerProfile。我正在使用 ModelSerializer,但是当我使用可浏览的 api 并生成 post 时,我得到:
{
"userprofile": {
"user": [
"This field is required."
]
}
}
关于如何做到这一点有什么想法吗?
class BuyerProfileViewSet(viewsets.ModelViewSet):
queryset = BuyerProfile.objects.all()
serializer_class = BuyerProfileSerializer
序列化程序:
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('username',)
class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer()
class Meta:
model = UserProfile
fields = ('user', 'bio','prof_type')
class BuyerProfileSerializer(serializers.HyperlinkedModelSerializer):
userprofile = UserProfileSerializer()
class Meta:
model = BuyerProfile
fields = ('userprofile', 'company','sitename')
将参数 required=False
添加到 UserProfileSerializer
的实例化中:
userprofile = UserProfileSerializer(required=False)
我有 3 个连接模型:User -> UserProfile -> BuyerProfile,当用户创建帐户时,我希望创建一个 User,然后是 UserProfile,然后是 BuyerProfile。我正在使用 ModelSerializer,但是当我使用可浏览的 api 并生成 post 时,我得到:
{
"userprofile": {
"user": [
"This field is required."
]
}
}
关于如何做到这一点有什么想法吗?
class BuyerProfileViewSet(viewsets.ModelViewSet):
queryset = BuyerProfile.objects.all()
serializer_class = BuyerProfileSerializer
序列化程序:
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('username',)
class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer()
class Meta:
model = UserProfile
fields = ('user', 'bio','prof_type')
class BuyerProfileSerializer(serializers.HyperlinkedModelSerializer):
userprofile = UserProfileSerializer()
class Meta:
model = BuyerProfile
fields = ('userprofile', 'company','sitename')
将参数 required=False
添加到 UserProfileSerializer
的实例化中:
userprofile = UserProfileSerializer(required=False)