1

继续这个问题,您能否举一个有效输入 json 的示例以同时创建新的用户和用户配置文件?

虽然这成功地在用户端点上创建了一个新用户:

{
    "username": "newuser", 
    "password": "abc"
}

但这在UserProfile端点上失败了:

{
    "user":{
            "username": "newuser2", 
            "password": "abc"
    }
    "biography": "1",
}

返回:

{
    "user": [
        "This field cannot be null."
    ]
}
4

1 回答 1

0

您正在寻找的是对嵌套资源的读+写支持,很快就会得到支持,但目前还没有。

但是,如果您使用 a 将用户配置文件模型链接到用户模型, HyperlinkedRelatedField您可以首先创建一个用户,然后使用创建的用户的 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/"
}

如果这对您来说要求太多,请查看文档

于 2013-05-14T15:49:42.407 回答