fab*_*hel 8 python django-rest-framework
使用 ModelViewSet 和 DjangoObjectPermissions。
Django REST 框架似乎不会为“创建”请求 (POST) 调用 check_object_permission。我需要检查用户是否可以在将其保存到数据库之前创建此对象(因为权限检查取决于对象值)
我想我需要覆盖 ModelViewSet 的“创建”方法,但我不知道如何从序列化程序获取实例而不将其保存到数据库。
谢谢
编辑:
深入研究 DRF 代码后,我无需保存即可获取实例:
def create(self, request, *args, **kwargs):
serializer = WorkedHourSerializer(data=request.data)
if serializer.is_valid():
instance = MyModel(**serializer.validated_data)
Run Code Online (Sandbox Code Playgroud)
但是 Django 拒绝检查 perm 没有主键的对象,所以我必须强制一个:
instance.id = 0
self.check_object_permissions(request, instance)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4463 次 |
| 最近记录: |