我认为这很简单,但我根本找不到错误。 for循环中的代码没有执行。当我查找数据库和管理站点时,内容显示正常,但尝试在HTML上显示不起作用:
浏览
from django.shortcuts import render
from django.utils import timezone
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now())
return render(request, "blog/bloglist.html", {'posts': posts})
的url:
from django.conf.urls import url
import views
urlpatterns = [
url(r'^blog/$', views.post_list),
]
base.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Blog</title>
</head>
<body>
<h1>Base</h1>
{% block content %}
{% endblock %}
</body>
</html>
bloglist.html
{% extends "base.html" %}
{% block content %}
<h1>Blog </h1>
{% for post in posts %}
<h3>{{ post.title }}</h3>
{% endfor %}
{% endblock %}
并确保模型也包含在内 机型:
from django.db import models
from django.utils import timezone
# Create your models here.
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
content = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
我知道它非常简单,但我找不到错误。提前致谢