我最终做了类似Khamaileon在这里建议的 *** 作。基本上,我修改了序列化器以查看请求,这闻起来很不对劲,但是它完成了工作……这是它的外观(以购买示例为例):
class PurchaseSerializer(serializers.HyperlinkedModelSerializer): def get_fields(self, *args, **kwargs): fields = super(PurchaseSerializer, self).get_fields(*args, **kwargs) fields['purchaser'].queryset = permitted_objects(self.context['view'].request.user, fields['purchaser'].queryset) return fields class meta: model = Purchase
allowed_objects是一个接受用户和查询并返回仅包含用户有权链接到的对象的过滤查询的函数。这似乎对验证和可浏览的API下拉字段都起作用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)