我正在将我的项目移植到Django Rest Framework为我的项目制作一个合适的REST Api,我认为它有助于大量设计API并使其健壮但我遇到了一个问题:
我有一个入门模型和相关的ListCreateAPIView
和RetrieveUpdateDestroyAPIView
视图.我可以通过ajax请求在列表中成功发布一个新的条目实例,并csrfmiddlewaretoken
按照我在常规Django View中的方式提供.
POST entries/
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用相同的方法将补丁应用于现有实例csrfmiddlewaretoken
:
PATCH entries/3
Run Code Online (Sandbox Code Playgroud)
然后响应状态代码是403 FORBIDDEN
错误的,CSRF Failed: CSRF token missing or incorrect
尽管我检查csrfmiddlewaretoken
了请求数据中的firebux .
我没有错,我无法找到代码中的哪个地方被拒绝了.
注意:我可以使用Django Rest Framework可浏览的api 修补对象.
我希望有人能帮帮忙.谢谢.奥利维尔
编辑
我正在深入研究代码,看看PATCH请求的拒绝发生在哪里,我发现django.middleware.csrt.py
如下:
if csrf_token is None: #<--- csrf_token is defined
# No CSRF cookie. For POST requests, we insist on a CSRF cookie,
# and in this way we can avoid all CSRF …
Run Code Online (Sandbox Code Playgroud) 作为我的Haskell之旅的一部分,我正在实现一个光线跟踪器,我需要能够在代码中的几个位置绘制随机数序列.通常我希望能够为每个像素获得64个样本,并且并行计算像素.
我正在寻找状态monad来实现这一点,我在这个答案的指导下在Haskell中采样随机数的序列,但我写的代码没有终止,它的内存消耗也会爆炸.
这是代码的抽象部分:我跳过能够sampleUniform
在代码中调用几次来获取随机数的新列表,但是如果我这样做runhaskell test.hs
,它会输出lis的第一个字符,[
然后它显然被卡住了无限循环.
module Main (main
, computeArray) where
import Control.Monad
import Control.Monad.State (State, evalState, get, put)
import System.Random (StdGen, mkStdGen, random)
import Control.Applicative ((<$>))
type Rnd a = State StdGen a
runRandom :: Rnd a -> Int -> a
runRandom action seed = evalState action $ mkStdGen seed
rand :: Rnd Double
rand = do
gen <- get
let (r, gen') = random gen
put gen'
return r
{- Uniform …
Run Code Online (Sandbox Code Playgroud) 我有一个带有Django Rest Framework的API端点来上传图像.
class MyImageSerializer(serializers.ModelSerializer):
image = serializers.ImageField(source='image')
Run Code Online (Sandbox Code Playgroud)
我可以上传图像,但它们使用从客户端发送的文件名保存,这可能导致冲突.我想改为使用时间戳文件名将文件上传到我的CDN.
生成文件名不是问题,只是用它保存图像.
谁知道怎么做?谢谢.