在Post模板页面加入{%csrf_token%}
{% for post in posts %}
{{ post.title }}
{{ post.timestamp }}
{{ post.body }}
{% endfor %}
使用rander
自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式,前者会自动使用RequestContext。而后者必须coding出来,这是最明显的区别,当然前者更简洁。
from django.shortcuts import render
# Create your views here.
def archive(request):
posts= BlogPost.objects.all().order_by('-timestamp')[:10]
return render(request,'archive.html',{'posts':posts})
完整的view例子
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.http import HttpResponse
from blog.models import BlogPost
from datetime import datetime
from django.http import HttpResponseRedirect
from django.shortcuts import render
# Create your views here.
def archive(request):
posts= BlogPost.objects.all().order_by('-timestamp')[:10]
return render(request,'archive.html',{'posts':posts})
def create_blogpost(request):
if request.method == 'POST':
BlogPost(
title=request.POST.get('title'),
body=request.POST.get('body'),
timestamp=datetime.now(),
).save()
return HttpResponseRedirect('/blog/')