我试图编写一个DetailView来使用名为template_name
的模型中的字段,我可以在每个条目上指定模板名称(如flatpages模型)。我试图使用DetailView,但也许我不应该使用它?
以下是我尝试编写的内容,但我收到此错误:'NoneType' object has no attribute 'render'
class EntryDetailView(DetailView):
model = Entry
def get_template_names(Entry, **kwargs):
if Entry.template_name:
template_name = "entry/%s" % Entry.template_name
else:
template_name = "entry/entry_detail.html"
有关如何正确使用的任何提示?
这是mye traceback:
Traceback:
File "/home/USER/.virtualenvs/PROJECT/src/Django-1.6b2/django/core/handlers/base.py" in get_response
139. response = response.render()
File "/home/USER/.virtualenvs/PROJECT/src/Django-1.6b2/django/template/response.py" in render
105. self.content = self.rendered_content
File "/home/USER/.virtualenvs/PROJECT/src/Django-1.6b2/django/template/response.py" in rendered_content
82. content = template.render(context)
Exception Type: AttributeError at /entries/test/
Exception Value: 'NoneType' object has no attribute 'render'
答案 0 :(得分:2)
试试这个(假设Django 1.5):
class EntryDetailView(DetailView):
model = Entry
template_name_field = 'template_name'
关于template_name_field的文档。