django 新闻编辑笔记

本文详细介绍了如何通过URL配置实现新闻的管理与编辑功能,包括编辑页面展示、处理函数实现以及关键信息处理流程。

url(r'^news_manage/edit/$',views.news_edit,name='edit') url配置

<a href="/management/news_manage/edit/?id={{news.id}}">编辑</a>  

点击后进入

<form action="{% url 'management:edit' %}?id={{ news_object.id }}" method="post">
题目:
<input type="text" name='title' value={{news_object.title }}><br>
作者:
<input type="text" name='author' value={{news_object.author }}><br>
内容:
<input type="text" name='content' style="width: 500px;height: 300px" value={{news_object.content }}><br>
是否前端显示(0不显示,1 显示):
<input type="text" name='status' value={{news_object.status }}><br>
<input type="submit" value="保存更改"/>
</form>

处理函数为:

@transaction.commit_manually
@csrf_exempt
def news_edit(request):
try:
p = News.objects.get(id=request.GET.get('id'))
if 'content' in request.POST or 'title' in request.POST or \
'status' in request.POST or 'author' in request.POST:
p.content = request.POST.get('content')
p.title = request.POST.get('title')
p.status = request.POST.get('status')
p.author = request.POST.get('author')
p.save()
transaction.commit()
return HttpResponseRedirect(reverse('management:news_manage'))
else:
transaction.commit()
return render_to_response('news/news_edit.html',
{'news_object': p}, context_instance=RequestContext(request))
except News.DoesNotExist:
transaction.rollback()
return render_to_response("error.html",
{'msg': "信息不存在"},
context_instance=RequestContext(request))
except Exception, e:
print e
transaction.rollback()
return render_to_response("error.html",
{'msg': "数据库错误"},
context_instance=RequestContext(request))

 

PS:render_to_response和HttpResponseRedirect区别,前者是浏览器地址栏不变在浏览器界面更改显示界面。后者是直接跳转到另一个url界面。

转载于:https://www.cnblogs.com/tuifeideyouran/p/3773617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值