如何使用DjangoRestFramework提交链接模型

如何使用DjangoRestFramework提交链接模型,django,django-rest-framework,Django,Django Rest Framework,在问题的继续部分,您能否给出一个有效输入json的示例,以同时创建新的用户和用户配置文件 这将在用户端点上成功创建新用户: { "username": "newuser", "password": "abc" } { "user":{ "username": "newuser2", "password": "abc" } "biography": "1", } 但这在UserProfile端点上失败:

在问题的继续部分,您能否给出一个有效输入json的示例,以同时创建新的用户和用户配置文件

这将在用户端点上成功创建新用户:

{
    "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会这样做,因为我没有使用它。