2016-09-30 30 views
0

爲什麼它不起作用? 它假設工作,在python中我可以使用這個函數,任何人都可以解釋我嗎?試圖在django中使用視圖,就像我用於python

觀點:

class MiVista(View): 
    def get(self, request, var): 
     self.var = 'Hello' 
     # <la logica de la vista> 
     return HttpResponse(self.var) 

one = MiVista() 
one.get(222222) 

網址:

url(r'^indice/', MiVista.as_view()), 

所以功能並不像使用POO Python函數中工作?

謝謝你們!

+2

是的,他們這樣做。但是就像Python中的其他函數一樣,你需要傳遞正確的參數。在你的情況下,get()需要兩個參數,並且你傳遞了一個參數。最重要的是,你沒有在你的網址中傳遞第二個參數。 –

回答

1

那麼作爲@MadWombat提到的,你是不是傳遞足夠的參數,所以你需要通過實例對象,request(不及格),var(通過)呼籲通過self,這已經傳遞了。而且由於您沒有規定您通過var=2222,python認爲2222request的說法。

所以基本上你需要創建request的參數。你可以用RequestFactory來做到這一點。像那

from django.test import RequestFactory 
from django.views.generic import View 


class MiVista(View): 
    def get(self, request, var): 
     self.var = var 
     # <la logica de la vista> 
     return HttpResponse(self.var) 

rf = RequestFactory() 
rf.get('indice/') 

one = MiVista.as_view()(rf, var='hello')