任何人都可以建议我如何序列化以下类型的与null相关的字段,以提供序列化的JSON对象列表,该列表在获取请求时不为空
class SomeModel(models.Model):
a_fk = models.ForeignKey(ForeignObj1, null=True, on_delete=models.CASCADE)
b_fk = models.ForeignKey(ForeignObj2, null=True, on_delete=models.CASCADE)
class SomeSerializer(serializers.ModelSerializer):
class Meta:
model = SomeModel
fields = ['a_fk', 'b_fk']
我在可浏览的API JSON中获得/看到的是
{
"a_fk": null,
"b_fk": null
}
但是字段Queryset是在可浏览的API表单上获取的,用于POST请求,就像普通的Django表单一样
我想看到的是在get请求中返回的那些字段上的可用queryset对象的实际列表,即使它为null,如果我重写PrimaryKeyRelatedField init (),打印字段仍然返回空的查询集,这意味着它仍将字段视为null。
我已经看完了源代码,但仍然想不出如何使它在get请求中动态发生
P.S由于某些业务用例,该字段必须保持为空。任何朝着正确方向前进的人都会受到赞赏
我现在的视图看起来像这样
class SomeViewSet(viewsets.ModelViewSet):
queryset = Some.objects.all()
serializer_class = SomeSerializer
我还在另一个ModelViewSet中嵌入了另一个@action getter视图,它也尝试获取请求,但仍返回相同的空对象。
搜索了几个小时之后,我认为,适当的问题应该是,如何从空的PrimaryKeyRelatedField创建一个选择可迭代列表,再次朝正确的方向轻推...