dow*_*123 9 django django-rest-framework
我正在关注 Django REST 框架教程,此时我在这里:http : //www.django-rest-framework.org/tutorial/4-authentication-and-permissions#adding-endpoints-for-our-user -楷模
我的 UserSerializer 代码如下所示:
class UserSerializer(serializers.ModelSerializer):
snippets = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = User
fields = ('id', 'username', 'snippets')
Run Code Online (Sandbox Code Playgroud)
我试图了解到底什么是 PrimaryKeyRelatedField。为此,我正在按如下方式更改代码并刷新 URLhttp://127.0.0.1:8000/users/
以查看不同的输出
变体 1
snippets = serializers.RelatedField(many=True, read_only=True)
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"username": "som",
"snippets": [
"Snippet title = hello",
"Snippet title = New2"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是打印出__unicode__()
片段的值。我期待这个
变体 2 - 使用 PrimaryKeyRelatedField
snippets = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"username": "som",
"snippets": [
1,
2
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这会打印出两个片段的主键 ID -我不明白这一点
变体 3 - 注释掉也会产生
#snippets = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"username": "som",
"snippets": [
1,
2
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20249 次 |
最近记录: |