2016-09-30 11 views
0

なぜ機能しませんか? それは、私はこの関数のようにこれを使用することができます、パイソンで動作すると思う、いずれか私を教えてください?Pythonで使用するのと同じようにdjangoでビューを使用しようとしています

ビュー:

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:

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

ので機能はPOOを使用してPythonで関数のように動作しませんか?

ありがとう!

+2

はい、そうです。しかし、Pythonの他の関数と同様に、正しい引数を渡す必要があります。あなたの場合、get()は2つの引数をとり、それを渡します。そしてその上に、あなたはあなたのURLに第二引数を渡していません。 –

答えて

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') 
関連する問題