Django POST常见的错误:CSRF verification failed. Request aborted.

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


   
   

   
   
{% csrf_token %}
{{ form }}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值