如何在 urls.py 中引用 Class 中的方法
How to reference to a Method inside a Class in urls.py
我有这个views.py
from django.shortcuts import render
from forms import ReferenceTableForm
class ReferenceTable(object):
def createReferenceTable(request):
form = ReferenceTableForm()
return render(request, "DataImport/createReferenceTable.html", {'form': form})
这是我的 urls.py
from django.conf.urls import patterns, include, url
import views
urlpatterns = patterns('',
url(r'^$', views.createReferenceTable),
)
但是当我转到 url、http://localhost:8000/create_reference_table/
(我为每个应用程序使用不同的 urls.py
)时,我收到此错误:
'module' object has no attribute 'createReferenceTable'
如果我将方法 createReferenceTable
移出 class,它工作正常。
我认为这是因为当我调用一个位于 class 中的方法时,它期望从这个 class 的实例中调用它,但因为我不是很有经验,我真的不知道怎么解决(不管是不是问题)。
谁能解释一下这是怎么回事,我该如何解决并防止下次发生?
提前致谢!
你可以在你的views里写ref = RefrenceTable()
,在你的urls里写ref.createRefrenceTable
,当然,from views import ref
您应该将方法设为静态:
class ReferenceTable(object):
@staticmethod
def createReferenceTable(request):
...
然后在urls.py
中添加class名字:
url(r'^$', views.ReferenceTable.createReferenceTable),
我有这个views.py
from django.shortcuts import render
from forms import ReferenceTableForm
class ReferenceTable(object):
def createReferenceTable(request):
form = ReferenceTableForm()
return render(request, "DataImport/createReferenceTable.html", {'form': form})
这是我的 urls.py
from django.conf.urls import patterns, include, url
import views
urlpatterns = patterns('',
url(r'^$', views.createReferenceTable),
)
但是当我转到 url、http://localhost:8000/create_reference_table/
(我为每个应用程序使用不同的 urls.py
)时,我收到此错误:
'module' object has no attribute 'createReferenceTable'
如果我将方法 createReferenceTable
移出 class,它工作正常。
我认为这是因为当我调用一个位于 class 中的方法时,它期望从这个 class 的实例中调用它,但因为我不是很有经验,我真的不知道怎么解决(不管是不是问题)。
谁能解释一下这是怎么回事,我该如何解决并防止下次发生?
提前致谢!
你可以在你的views里写ref = RefrenceTable()
,在你的urls里写ref.createRefrenceTable
,当然,from views import ref
您应该将方法设为静态:
class ReferenceTable(object):
@staticmethod
def createReferenceTable(request):
...
然后在urls.py
中添加class名字:
url(r'^$', views.ReferenceTable.createReferenceTable),