3

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" メソッドがあります。

誰かがこの厄介な問題を手伝ってくれませんか?

よろしく。

Ps。私はDjangoバージョンを使用しています:1.3.1

4

1 に答える 1

1

問題は、次の式の値category.last_post.thread.pkがNoneまたは''であるということです。また、引数'(''、)'を使用した'baza.views.thread'のリバースはありません。

引数(''、)は、 category.last_post.thread.pkNoneまたは''であることを意味します

于 2012-07-15T20:47:18.663 に答える