TemplateSyntaxError

时间:2012-07-15 20:20:50

标签: python django django-templates

我在django模板中使用{%url%}标记时遇到问题。

<a href="{% url baza.views.thread category.last_post.thread.pk %}">LINK</a>

抛出此错误:

Caught NoReverseMatch while rendering: Reverse for 'baza.views.thread' with arguments '('',)' and keyword arguments '{}' not found.

奇怪的是,它的工作原理如下:

{{ category.last_post.thread.pk }}

返回正确的值'8',当我像这样使用它时也不会抛出错误:

<a href="{% url baza.views.thread 8 %}">LINK</a>

上面的代码工作正常,并重定向到线程。

my urls.py:

...
(r"^temat/(\d+)/$", "thread"),
...

发布模型:

class Post(models.Model):
    title = models.CharField(max_length=60)
    created = models.DateTimeField(auto_now_add=True)
    creator = models.ForeignKey(User, blank=True, null=True)
    thread = models.ForeignKey(Thread)
    body = models.CharField(max_length=10000)

线程视图:

def thread(request, pk):
    posts = Post.objects.filter(thread=pk).order_by("created")
    posts = mk_paginator(request, posts, 20) # ZMIEN TAKZE W get_thread_page
    t = Thread.objects.get(pk=pk)

    return render_to_response("baza/thread.html", add_csrf(request, posts=posts, pk=pk, title=t.title,
    element_pk=t.element.pk, media_url=MEDIA_URL, path = request.path))

类别模型具有“last_post”metod,它返回此类别中发布的最后一个消息。

有人可以帮我解决这个恼人的问题吗?

问候。

聚苯乙烯。我正在使用Django版本:1.3.1

1 个答案:

答案 0 :(得分:1)

问题是下一个表达式category.last_post.thread.pk的值是None或''。没有反向'baza.views.thread'与参数'('',)'

参数('',)表示category.last_post.thread.pk为无或''