2011-03-30 73 views

回答

0

沒有(乾淨)的方式來做到這一點,我認爲這不是一個好主意。我不知道爲什麼你會希望在那裏發出請求,但請記住請求對象上的許多事情可能會被用戶篡改,並​​且使用它來做文件系統操作可能是不安全的。

但是有辦法做到這一點,Django和Python社區大多數人都不贊成這種方法,但是您可以在中間件中設置本地線程並在您的函數中訪問該線程。

middleware.py

import threading 

mydata = threading.local() 

class RequestHackMiddleware(object): 
    def process_request(self, request): 
     mydata.request = request 

models.py

from middleware import mydata 

def get_image_path(instance, filename): 
    # do stuff with mydata.request