Django POST常見的錯誤:CSRF verification failed. Request aborted.

在Post模板頁面加入{%csrf_token%}


{% 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/')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章