我们什么时候需要将查询集参数传递给 Django REST Framework 中的 PrimaryKeyRelatedField?
When do we need pass queryset argument to PrimaryKeyRelatedField in Django REST Framework?
我正在阅读 DRF 文档,在 primaryKeyRelatedField 中我看到的参数是
queryset - The queryset used for model instance lookups when validating the field input. Relationships must either set a queryset explicitly, or set read_only=True.
我了解 PrimarykeyRelatedField 用于序列化使用主键的关系。但是,我无法理解为什么我们需要将查询集作为参数传递给 PrimaryKeyRelatedField。我在文档中找不到任何示例,我在网上看到了一些示例,但仍然无法弄清楚。请通过任何用例或示例帮助我理解这一点。提前谢谢你。
一个有点老的问题,但对于一些仍在搜索的人来说——你可以在反序列化过程中使用它
entity = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.all())
因此,您可以在 create/update 请求正文中仅指定主键:
{
"entity": 1
}
这将自动查找实体,如果在您提供的给定查询集中未找到,则提供 400 响应代码。如果找到,则会在使用的序列化程序的 validated_data 中为您提供实体实例。
serializer.validated_data["entity"] # this will return Entity object
我正在阅读 DRF 文档,在 primaryKeyRelatedField 中我看到的参数是
queryset - The queryset used for model instance lookups when validating the field input. Relationships must either set a queryset explicitly, or set read_only=True.
我了解 PrimarykeyRelatedField 用于序列化使用主键的关系。但是,我无法理解为什么我们需要将查询集作为参数传递给 PrimaryKeyRelatedField。我在文档中找不到任何示例,我在网上看到了一些示例,但仍然无法弄清楚。请通过任何用例或示例帮助我理解这一点。提前谢谢你。
一个有点老的问题,但对于一些仍在搜索的人来说——你可以在反序列化过程中使用它
entity = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.all())
因此,您可以在 create/update 请求正文中仅指定主键:
{
"entity": 1
}
这将自动查找实体,如果在您提供的给定查询集中未找到,则提供 400 响应代码。如果找到,则会在使用的序列化程序的 validated_data 中为您提供实体实例。
serializer.validated_data["entity"] # this will return Entity object