0

ブログエンジンを作成するためのチュートリアルに従い、それをうまく統合しました。機能していないのはこのテンプレートだけです。理由はわかりません。何が問題になる可能性がありますか?

テンプレートは次のとおりです。

{% extends "base.html" %}

{% block title %}{% post.title %}{% endblock %}

{% block content %}

<h3>{{ post.title }}</h3>
<p>Posted on {{ post.published|date:"F j, Y" }}<p>

{{ post.description|safe }}
<br>
{{ post.body|safe }}
<br>

{% if previous_post %}
<a href="{{ previous_post.get_absolute_url }}" title="{{ previous_post.title }}">
&laquo;&nbsp;Previous Post:&nbsp;&nbsp;{{ previous_post.title }}
</a>{% endif %}

{% if previous_post and next_post %}&nbsp;|&nbsp;{% endif %}

{% if next_post %}
<a href="{{ next_post.get_absolute_url }}" title="{{ next_post.get_absolute_url }}">
Next Post:&nbsp;&nbsp;{{ next_post.title }}&nbsp;&raquo;
</a>
{% endif %}

{% endblock content %}

そしてここにviews.pyがあります:

def detail(request, sl):
try:
     post = Post.objects.filter(slug=sl)[0]
     try:
          previous_post = post.get_previous_by_published()
     except:
          previous_post = ""
     try:
          next_post = post.get_next_by_published()
     except:
          next_post = ""
except:
     next_post = ""
     previous_post = ""
     post = ""
return render_to_response('blog/detail.html', {'post':post,
                                        'next_post':next_post,
                                        'previous_post':previous_post,
                                                               },)
4

1 に答える 1

1

わかりましたので、問題を見つけて解決しました。誰かがそれを使用できるように、ここに投稿したかっただけです。それは実際にはn00bの間違いでした。

したがって、関数の引数として呼び出す「sl」に何もないため、{{}} はレンダリングされませんでした。私はチュートリアルに従っていましたが、チュートリアルはDjangoについて非常に重要なことを説明していなかったため、空でした。つまり、名前付きグループを関数の引数として追加でき、「sl」と呼ばれる名前付きグループがありませんでしたurlconf を適切な場所に配置します。したがって、これを追加すると:

(r'^([0-9]{4}/\d{1,2})/(?P<sl>.*)/$', detail),

urlconf で問題は解決しました。

ご指導ありがとうございました。

于 2012-06-07T15:23:10.673 に答える