我在模板中多次使用模型方法,但由于某些原因,在这个项目中,我遇到了一个无法访问模板中方法的问题。以这个模型为例:
class Post(models.Model):
'''
Data about blog posts. The guts of everything.
'''
blog = models.ForeignKey(PersonalBlog)
title = models.CharField(max_length=50)
body = models.TextField()
create_date = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=True)
slug = models.SlugField(unique=True, blank=True)
def get_absolute_url(self):
from django.core.urlresolvers import reverse
return reverse('blog-post', kwargs={'blog':self.blog.slug, 'post':self.slug})
def hello(self):
return 'hello'
然后在模板中,如果我做了类似的事情:
{% for p in posts %}
<a href="{{ p.get_absolute_url }}"><h3>{{ p.title }}</h3></a>
{% endfor %}
我没有从get_absolute_url那里得到任何回报。验证方法在终端中正常工作后,我在上面创建了一个名为hello的虚方法。它也会在终端中返回,但模板中没有任何内容。我重新启动了服务器,并在强行重装时站了起来。对于通常微不足道的事情似乎没有任何作用。
我猜这对我来说是个愚蠢的事情,但是经过太长时间的故障排除这么简单,我无法找到它。有什么想法吗?
答案 0 :(得分:0)
我不知道为什么我忽略了它,但问题是在视图中创建了posts对象。我正在使用TastyPie,并且在API调用中无法访问该方法。需要更改API资源以公开该功能。