django模型方法无法在模板中访问

时间:2014-08-13 21:17:26

标签: django django-models

我在模板中多次使用模型方法,但由于某些原因,在这个项目中,我遇到了一个无法访问模板中方法的问题。以这个模型为例:

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的虚方法。它也会在终端中返回,但模板中没有任何内容。我重新启动了服务器,并在强行重装时站了起来。对于通常微不足道的事情似乎没有任何作用。

我猜这对我来说是个愚蠢的事情,但是经过太长时间的故障排除这么简单,我无法找到它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不知道为什么我忽略了它,但问题是在视图中创建了posts对象。我正在使用TastyPie,并且在API调用中无法访问该方法。需要更改API资源以公开该功能。