Django Rest Framework - 在 OPTIONS 上限制 ForeingKey 字段查询集?
Django Rest Framework - limit ForeingKey field queryset on OPTIONS?
在 ViewSet 上调用 OPTIONS 将呈现实体的漂亮表示,以帮助构建表单以在 UI 上提交它。然而,当存在 ForeignKey 关系时,它将尝试呈现该关系的所有可用实体。我虽然只需要一个特定的子集是可选的。有没有办法像 Django Forms 一样限制这个字段查询集(通过设置 form.field.queryset
属性)?
在Django REST framework 3中,可以直接在字段上设置the queryset
argument来控制允许选择哪些对象。
对于自动生成的字段,这通常以 Model.objects.all()
结束。您可以通过调用 repr(YourSerializer())
并查看自动生成的字段的外观来确认这一点。您可以通过在序列化程序级别设置查询集 in extra_kwargs
来覆盖自动生成的字段。
在 ViewSet 上调用 OPTIONS 将呈现实体的漂亮表示,以帮助构建表单以在 UI 上提交它。然而,当存在 ForeignKey 关系时,它将尝试呈现该关系的所有可用实体。我虽然只需要一个特定的子集是可选的。有没有办法像 Django Forms 一样限制这个字段查询集(通过设置 form.field.queryset
属性)?
在Django REST framework 3中,可以直接在字段上设置the queryset
argument来控制允许选择哪些对象。
对于自动生成的字段,这通常以 Model.objects.all()
结束。您可以通过调用 repr(YourSerializer())
并查看自动生成的字段的外观来确认这一点。您可以通过在序列化程序级别设置查询集 in extra_kwargs
来覆盖自动生成的字段。