这是一个创建于 3519 天前的主题,其中的信息可能已经有所发展或是发生改变。
其实是Django中我想用类的方法来重写 views.py
这是urls.py
---------------------------------------------
from django.conf.urls import patterns, url
from .views import Index
urlpatterns = patterns('',
url(r'^$', Index.index(), name="index" ),)
这是views.py:
------------------------------------------------------
class BaseMixin(object):
def __init__(self):
self.latest_article_list = Article.objects.order_by('-date')[:15]
self.context = {'latest_article_list':self.latest_article_list}
self.python_list = Article.objects.filter(category='python')
class Index(BaseMixin):
def __init__(self):
super(Index,self).__init__(self)
def index(self, request):
return render(request, 'home/index.html', self.context)
def python(self, request):
return render(request, 'home/python.html', {'python_list':self.python_list})
但是输出TypeError
unbound method index() must be called with Index instance as first argument (got nothing instead)
然后我在urls.py里面实例化了
a=Index()
url里面这样写 Index.index()
但是错误说需要传入2个参数,我也是初学,只能用函数的方法来不厌其烦地往views中写。
请问这两个情况该怎么样解决
我想直接 Index.index() 然后可以成功执行Index类的index方法,把数据渲染到模版。
|
|
1
cc7756789 2015-05-13 11:24:28 +08:00
url里面这样写 Index.index() 写错了 a.index()
|
|
|
2
fy 2015-05-13 14:55:28 +08:00
O.O 我记得django有直接用类的方法!翻一翻文档吧
|