小编cde*_*win的帖子

Django Rest Framework 权限检查创建

为什么 django rest 框架在创建对象时不检查对象权限?用户应该能够创建他们无法看到、更新或删除的对象是没有意义的(无论如何对我来说)。目前我子类化了一个视图集

class CheckCreatePermissionsViewSet(ModelViewSet):
    def perform_create(self, serializer):
    '''
    Called by create before calling serializer.save()
    '''
    obj = serializer.save()
    try:
        self.check_object_permissions(obj)
    except:
        obj.delete()
        raise
Run Code Online (Sandbox Code Playgroud)

为什么默认情况下不实现?这让我很头疼,我想不出它会像这样实施的单一原因。

django django-rest-framework django-guardian

6
推荐指数
1
解决办法
1387
查看次数

在Rust中调用存储在Struct中的堆栈分配的闭包

我在这样的结构中存储一个闭包:

#[derive(Clone)]
struct S<'a> {
    func: &'a FnOnce() -> u32
}

fn main() {
    let s = S { func: &|| 0 };
    let val = (s.func)();
    println!("{}", val);
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,s.func无法移动来执行自己.我理解为什么它不能移动(即它只是一个引用,并且它的大小在编译时是不知道的),但不知道为什么它被移动 - 是否只是因为闭包是通过特征实现的?

这是错误消息:

error[E0161]: cannot move a value of type std::ops::FnOnce() -> u32:
the size of std::ops::FnOnce() -> u32 cannot be statically determined
 --> main.rs:8:15
  |
8 |     let val = (s.func)();
  |               ^^^^^^^^

error[E0507]: cannot move out of borrowed content
 --> main.rs:8:15
  |
8 |     let …
Run Code Online (Sandbox Code Playgroud)

struct closures move rust

4
推荐指数
1
解决办法
333
查看次数