【问题标题】:django blog no display - beginnerdjango 博客无显示 - 初学者
【发布时间】:2014-04-22 09:35:11
【问题描述】:

我正在使用 python 2.7 运行 django 1.4.6,我正在尝试建立一个测试博客来帮助我的编码技能 - 但我遇到了一些麻烦,现在我很困惑,所以我必须寻求帮助.

这是我的 model.py 条目:

class BlogPostDetails(models.Model, FillableModelWithLanguageVersion):
    blog_post_title = models.CharField(max_length=100)
blog_post_date_published = models.DateTimeField()
blog_post_author = models.CharField(max_length=50)
blog_post_body = models.TextField()
blog_post_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
blog_post_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

def __unicode__(self):
    return self.blog_post_title

这是我的 url.py 条目:

    url(r'^details/blog_list/$', 'blog_post_list', name='blog_post_list'),

这是我的 views.py 条目:

def blog_post_list(request):
    language_versions = get_language_versions(user=request.user)
    blog_posts = BlogPostDetails.objects.filter()
    return render(request, 'core/details/blog_list.html', {
        'display_default_language': display_default_language(request.user),
        'languages': LANGUAGES,
        'language_versions': language_versions,
        'language_versions_num': len(language_versions),
        'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
        'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
    })

这是我认为会显示博客详细信息的模板循环:

{% block page_content %}
    {% for blog_post in blog_posts %}
        {{ forloop.counter }}<br />
        {{ blog_posts.blog_post_body|safe|truncatechars:popover_string_length_500|linebreaksbr }} <br />
    {% endfor %}
{% endblock %}

我已将博客添加到管理员并添加了几条博客记录。

我的问题是我做错了什么,因为模板中没有显示任何内容。我真的需要一些指导。

【问题讨论】:

  • 你写了blog_posts.blog_post_body。我想你的意思是blog_post(单数)。
  • 请不要在所有字段名前加上类名。这是不必要的重复。
  • Daniel Roseman - 我使用前缀作为自己的参考。它使我个人更容易阅读代码。

标签: django django-models django-templates django-views django-urls


【解决方案1】:

在您的视图中,您尚未将 blog_posts 附加到您的上下文中:

def blog_post_list(request):
    language_versions = get_language_versions(user=request.user)
    blog_posts = BlogPostDetails.objects.filter()
    return render(request, 'core/details/blog_list.html', {
        'blog_posts': blog_posts, # HERE YOU GO
        'display_default_language': display_default_language(request.user),
        'languages': LANGUAGES,
        'language_versions': language_versions,
        'language_versions_num': len(language_versions),
        'popover_string_length_20': settings.POPOVER_STRING_LENGTH_20,
        'popover_string_length_500': settings.POPOVER_STRING_LENGTH_500,
    })

【讨论】:

  • 谢谢。我正遭受信息过载的困扰,所以我没有看到错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多