python - 在屏幕上发布数据
问题描述
我正在学习 Django,并在此视频中进行了练习,我在 45 分钟左右起床,一切正常:https ://www.youtube.com/watch?v=D6esTdOLXh4之后我无法获得这两个博客文章以在视频中显示。
我将新模型命名为“posts”,这与视频中将模型称为“Posts”不同,所以我调整了我的代码,而不是创建变量“posts”,而是在 view.py 中创建了 blogpost。下面我展示了模型、视图和索引的代码。问题是我可以看到布局,但它没有填充 jinja 代码中的博客文章。如果我添加静态文本,静态文本显示正常。
模型.py
/*from django.db import models
from datetime import datetime
# Create your models here.
class posts(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
created_at = models.DateTimeField(default=datetime.now, blank=True)
def __str__(self):
return self.title
class Meta:
verbose_name_plural = "Posts"*/
视图.py
def index(request):
# return HttpResponse('Hello from Posts')
blogpost = posts.objects.all()[:10]
context = {
'title': 'latest posts',
'posts': blogpost
}
return render(request, 'posts/index.html', context)
索引.html
{% extends 'posts/layout.html' %}
{% block content %}
<h1 class="center-align red lighten-3">{{title}}</h1>
<ul class="collection">
{% for blog in blogpost %}
<li class="collection-item">{{blog.title}}</li>
{% endfor %}
</ul>
{% endblock %}
因此,就像在视频中一样,它应该会在主屏幕上显示我的博客文章 1 和 2,但事实并非如此。
解决方案
在视图中查看,您将posts
作为参数发送到模板。
context = {
'title': 'latest posts',
'posts': blogpost
}
在模板上,您必须更改for
for:
{% for blog in posts %}
<li class="collection-item">{{blog.title}}</li>
{% endfor %}
推荐阅读
- css - 将基本引导输入样式应用于引导选择选择输入
- r-exams - 如何在 num_to_schoice 中插入文本?
- javascript - 如何在 React JS 中使用作为道具传递的静态图像路径
- haproxy - HAProxy: change backend as path?
- sql - 通过与前两个相关但 id 不同的第三个关系表连接两个表
- java - 如何确定我自己项目中给定依赖项的测试覆盖率?
- python - 使用rest api更新汇合页表时出错
- css - z-index 不起作用
- sql - 可以在其中执行原因的具有不存在列的 SQL
- python - python PIL 或 pyautogui.screeshot("photo.png",region=(xx,yy,zz)) 错误