python - Django:我的模板未加载/未被调用

标签 python django django-models django-forms django-templates

编辑:正如 @HåkenLid 所说,我应该将其作为 2 个单独的帖子提出,第一个问题(关于模板)已得到解答!

我是 Django 的新手,到目前为止我一直在使用它。我正在尝试建立一个博客来娱乐,但我遇到了一些问题。

这是我的模型、表单、网址、 View 和文件树:

/image/KtzF7.png

对于第一个问题:(为了节省空间,我只添加了每个文件的部分内容)

#blog/views.py
class BlogDetail(generic.DetailView):
model = Entry
template_name = "blog/entry_detail.html"


#blog/templates/blog/entry_detail.html
{% extends "base.html" %}
{% load django_markdown %}

<div class="post">
  <h2><a href="{% url "entry_detail" slug=object.slug %}">{{ object.title }}</a></h2>
  <p class="meta">
    {{ object.creation_date }} |
    Tagged under {{  object.tags.all|join:", " }}
  </p>
  {{ object.body|markdown }}
</div>


#blog/urls.py
urlpatterns = patterns(
    '',
    url(r'^$', views.BlogIndex.as_view(), name="index"),
    url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
)


#blog/models.py
class Entry(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()
    slug = models.SlugField(max_length=100, unique=True)
    creation_date = models.DateTimeField(editable=False)
    publication_date = models.DateTimeField(editable=False, null=True)
    modification_date = models.DateTimeField(editable=False)

    author = models.ForeignKey(User)
    categories = models.ManyToManyField(Category)
    tags = models.ManyToManyField(Tag)

    objects = EntryQuerySet.as_manager()

    def __str__(self):
        return self.title

    def was_published_recently(self):
        now = datetime.datetime.now()
        return now - datetime.timedelta(days=1) <= self.publication_date <= now

    def is_published(self):
        return self.publication_date is not False

    is_published.boolean = True
    is_published.short_description = 'Is it Published?'

    def get_absolute_url(self):
        return reverse("entry_detail", kwargs={"slug": self.slug})

    class Meta():
        verbose_name = "Blog Entry"
        verbose_name_plural = "Blog Entries"
        ordering = ['-creation_date']

    def save(self, *args, **kwargs):
        """ On save, update timestamps """
        if not self.id:
            self.creation_date = datetime.datetime.now()
        self.modification_date = datetime.datetime.now()
        return super(Entry, self).save(*args, **kwargs)

当我输入类似

localhost:8000/entry/this-is-an-entry-title-slug

e.j:/image/AlItb.png

我不知道该条目的详细信息,只是在 base.html 中定义的标题之类的东西,我真的不知道为什么它没有被加载。

一如既往,非常感谢您的帮助,如果这是非常基本的问题,我很抱歉,但到目前为止我还没有找到任何解决方案。

最佳答案

扩展模板时需要使用 {% block %}

如果你在base.html中有一个名为“content”的 block ,你可以这样做:

#blog/templates/blog/entry_detail.html
{% extends "base.html" %}
{% load django_markdown %}
{% block content %}
<div class="post">
  <h2><a href="{% url "entry_detail" slug=object.slug %}">{{ object.title }}</a></h2>
  <p class="meta">
    {{ object.creation_date }} |
    Tagged under {{  object.tags.all|join:", " }}
  </p>
  {{ object.body|markdown }}
</div>
{% endblock content %}

关于python - Django:我的模板未加载/未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27975924/

相关文章:

python - 在同一脚本(python)中使用套接字服务器和 flask 网络服务器时地址已在使用中的错误

javascript - 使用 Ajax 添加好友 - Django

python - Django-Channels -/admin/portal 不显示创建的新模型

django - 在保存过程中标记 django 模型实例以供以后处理

Django - 如何将模型的选择显示为复选框

python - 命令行 python 应用程序和框架

python - 如何在 gensim 的 LDA 模型中获取主题编号

python - 如何从另一个Python脚本重复运行一个Python脚本?

django - 某些页面需要 ssl 的 django 应用程序的 apache 中的设置

python - django.db.utils.IntegrityError : duplicate key value violates unique constraint "core_user_pkey" DETAIL: Key (id)=(23) already exists