如何使用DjangoRestFramework提交链接模型
在问题的继续部分,您能否给出一个有效输入json的示例,以同时创建新的用户和用户配置文件 这将在用户端点上成功创建新用户:如何使用DjangoRestFramework提交链接模型,django,django-rest-framework,Django,Django Rest Framework,在问题的继续部分,您能否给出一个有效输入json的示例,以同时创建新的用户和用户配置文件 这将在用户端点上成功创建新用户: { "username": "newuser", "password": "abc" } { "user":{ "username": "newuser2", "password": "abc" } "biography": "1", } 但这在UserProfile端点上失败:
{
"username": "newuser",
"password": "abc"
}
{
"user":{
"username": "newuser2",
"password": "abc"
}
"biography": "1",
}
但这在UserProfile端点上失败:
{
"username": "newuser",
"password": "abc"
}
{
"user":{
"username": "newuser2",
"password": "abc"
}
"biography": "1",
}
返回:
{
"user": [
"This field cannot be null."
]
}
您正在寻找的是对嵌套资源的读写支持,它将提供,但目前还没有 但是,如果将用户配置文件模型链接到用户模型,则可以先创建一个用户,然后使用创建的用户的URI作为用户参数创建一个用户配置文件。假设您具有以下用户配置文件模型和序列化程序:
# Model:
class UserProfile(models.Model):
country = models.CharField(max_length=127)
wants_newsletter = models.BooleanField(default=False)
# Serializer:
class UserProfile(serializers.ModelSerializer):
user = serializers.HyperlinkedRelatedField('user-detail')
class Meta:
fields = ('country', 'wants_newsletter')
。。。和位于users/1/的用户对象,您可以使用以下对用户配置文件端点的POST请求为给定用户创建新的用户配置文件:
{
"country": "Switzerland",
"user": "/users/1/"
}
如果这对您来说太多了,请看一看。通常这些都会获取一个指向相关对象的另一个资源的资源uri,但我不能肯定DjangoRestFramework会这样做,因为我没有使用它。