self.action是None在get_permissions()方法中。
当调用不存在的 url 时,DRF 不会抛出 404 错误。这就是为什么行动在某种程度上是None有 get_permissions()方法的。
这里是ModelViewSet:
class UserViewSet(ModelViewSet):
serializer_classes = {
"list": UserSerializer,
"retrieve": UserSerializer,
"create": UserSerializer,
"update": UserUpdateSerializer,
}
http_method_names = ["get", "post", "put"]
def get_serializer_class(self):
return self.serializer_classes[self.action]
def get_permissions(self):
if self.action is None:
# here error raises when i call '.../accounts/blablabla/` endpoint in post request instead of 404?
raise AssertionError("self.action cannot be None")
if self.action in ["list", "retrieve"]:
return [IsAuthenticated(), IsAdmin()]
else:
return [AllowAny()]
Run Code Online (Sandbox Code Playgroud)
这是我在 …
rand.Seed(n)我想知道Go中是否需要手动调用?
我有一个看起来像这样的代码:
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println(rand.Intn(100))
fmt.Println(rand.Intn(100))
fmt.Println(rand.Intn(100))
}
Run Code Online (Sandbox Code Playgroud)
每次我运行这段代码时,每一行都会打印出与其他行不同的数字。那么我每次
打电话之前都需要先打电话吗?rand.Seed(n)rand.Intn(100)
我想创建一个名为 的类Chain。
我希望能够__init__多次调用方法。
例如:
>> Chain(1)
1
>> Chain(1)(2)
3
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Python中做到这一点?