0

私はurl.pyにこれを持っています

from django.conf.urls.defaults import patterns, include, url
from django.views.generic import ListView
from blog.models import Post

urlpatterns = patterns('',
    url(r'',
        ListView.as_view(
            queryset=Post.objects.all().order_by('-created')[:2],
            template_name='blog.html'
            )
        ),
)

これは template/blog.html にあります

(% extends "base.html" %)

(% block content %)

(% for post in object_list %)

<h1>{{ post.title }}</h1>
<div class="post_meta">
    on {{post.created}}
</div>
<div class="post_body">
    {{post.body|safe|linebreaks}}
</div>
<div class="tags">
    {% for tag in post.tags.all %}
        <a href="blog/tag/{{tag}}">{{tag}}</a>
        {% if not forloop.last %}, {% endif %}
    {% endfor %}
</div>

(% endfor %)
(%  endblock %)

チュートリアルにあるように、サイト ラウンドにアクセスすると、2 つのブログが含まれているはずですが、そこにアクセスすると、ブラウザに次のように表示されます。

(% extends "base.html" %) (% block content %) (% for post in object_list %)
on
(% endfor %) (% endblock %)
4

1 に答える 1

3

はい、問題は、テンプレートタグや変数{}の代わりにテンプレートを使用する必要があることです(){{}}

{% extends "base.html" %}

 {% block content %}

{% for post in object_list %}

<h1>{{ post.title }}</h1>
<div class="post_meta">
    on {{post.created}}
</div>
<div class="post_body">
    {{post.body|safe|linebreaks}}
</div>
<div class="tags">
    {% for tag in post.tags.all %}
        <a href="blog/tag/{{tag}}">{{tag}}</a>
        {% if not forloop.last %}, {% endif %}
    {% endfor %}
</div>

{% endfor %}
{%  endblock %}
于 2013-07-13T19:36:26.720 に答える