【发布时间】:2015-02-25 06:25:35
【问题描述】:
我是 Django 新手,到目前为止我的所有项目都使用了通用视图。我在 url.py 代码中使用
调用了它们模式(r'^url$',DetailView.as_view())
但是,现在我正在尝试制作自己的基于类的视图,但遇到了麻烦。我尝试做一个简单的测试,从我的视图中调用一个 model.py 函数,但是我得到一个错误,我没有实例化该类的实例。我应该如何实例化视图类?另外,为什么我在调用 DetailView.as_view() 时没有得到同样的错误,DetailView 类也没有被实例化,对吧?
我的代码:
models.py
class Post(models.Model):
title = models.CharField(max_length=140)
body = models.TextField()
def __unicode__(self):
return self.title
def getBody(self):
return self.body
view.py
class RatingView(generic.DetailView):
model = Post
template_name = "like.html"
def __init__(self):
model = Post
template_name = "like.html"
def modelFuncTest(self):
return HttpResponse(self.model.getBody())
url.py
from django.conf.urls import patterns, include, url
from django.views.generic import ListView, DetailView
from blog.views import RatingView
from blog.models import Post
urlpatterns = patterns('',
url(r'^(?P<pk>\d+)/like/$', RatingView.modelFuncTest()),
)
【问题讨论】:
标签: python django class view instance