我在 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>
上面的代码工作正常,并重定向到线程。
我的 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”方法,它返回在此类别中发布的最后一条消息。
有人可以帮我解决这个烦人的问题吗?
问候。
附言。我正在使用 Django 版本:1.3.1