如何在中引用类内的方法网址.py

2024-04-24 04:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个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移出类,它就可以正常工作。你知道吗

我认为这是因为当我调用一个类中的方法时,它期望从这个类的实例中调用它,但是由于我不是很有经验,我真的不知道如何解决它(不管它是否是问题)。你知道吗

有人能解释一下发生了什么事,我怎样才能解决它,防止下次再发生吗?你知道吗

提前谢谢!你知道吗


Tags: django方法frompyimportformurlobject
2条回答

您可以在视图中编写ref = RefrenceTable(),在url中编写ref.createRefrenceTable,当然,from views import ref

您应该将方法设置为静态:

class ReferenceTable(object):

    @staticmethod
    def createReferenceTable(request):
        ...

然后在urls.py中添加类名:

url(r'^$', views.ReferenceTable.createReferenceTable),

相关问题 更多 >