大圣画廊v0.3.5
来源:互联网 发布:intent传递数据时 编辑:程序博客网 时间:2024/04/29 11:17
v0.3.5更新内容
在用户系统基础上增加一个留言板板块,包括一个输入表单,已存在的留言会放在表单的上方,允许不登录留言。
以下依然是按照四个板块分开详解。
模型设计(models.py)
需要新增一个留言(Message)类型。
#v0.3.5 class Message(models.Model): content=models.CharField(max_length=3000) author=models.ForeignKey(User,related_name='user_messages',default=2) time=models.DateTimeField(auto_now_add=True) def __unicode__(self): return u'%s'%(self.content)
具有三个属性,内容,作者和时间,其中作者和User相关联的外键,这里设置了defualt=2,其实是一个很奇葩的做法,因为我的想法是允许不登录发言,但是如果不登录的话,request.user的类型就不是User而是匿名用户AnonymousUser ,在视图中就无法实例化成功,所以我的解决办法是注册一个名字叫佚名的用户,在管理员账户之后,所以是用户id是2,当未登录留言时自动使用这个用户示例生成message。
模板(message.html)
{% extends "base.html" %} {% block title %}留言板{% endblock %} {% block content %} {% for msg in msgs %} <div class="list-group"> <a href="#" class="list-group-item"> <h4 class="list-group-item-heading">{{msg.content}}</h4> <p class="list-group-item-text" align="right">——{{msg.author}}</p> <p class="list-group-item-text" align="right">at {{msg.time}}</p> </a> </div> {% endfor %} <form class="form-horizontal panel container" method="POST" action=".">{% csrf_token %} <div class="form-group"> <label class="control-label" for="exampleMessage">留言:</label> <textarea type='text' name='content' value="" class="form-control" id="exampleMessage" placeholder=""></textarea> </div> <div class="form-group col-md-2"> <input type="hidden" name="next" value="/"/> <input type="submit" class="btn btn-lg btn-primary" value="发布"/> </div> </form> {% endblock %}
在留言框的上方展示内容。
视图(views.py)
#v0.3.5 def message(request): if request.method=='POST': content=request.POST.get('content') try: new_message=Message.objects.create( content=content, author=request.user ) except Exception, e: new_message=Message.objects.create( content=content )#如果用户未登录,匿名用户将会报错 new_message.save() return HttpResponseRedirect('/msg/') else: new_message.save() return HttpResponseRedirect('/msg/') else: msgs=Message.objects.all().order_by('-time') return render_to_response('message.html',RequestContext(request,{'msgs':msgs})
这里用了一个try-except异常处理,在try部分如果author的类型识别为AnonymousUser,会报ValueError错误,转入except分支,此时创建message对象就不加入author属性,这个属性就会自动使用默认的2,也就是注册的“佚名”用户。
路由
#v0.3.5 url(r'^msg/',message,name='留言板页'),
完。
0 0
- 大圣画廊v0.3.5
- 大圣画廊v0.1(2015.7.16)
- 大圣画廊v0.2(2015.7.17)
- 大圣画廊v0.4.0(7.18)
- 大圣归来!
- 中国儒家三大圣
- 2015071202 - 大圣归来
- 2015071304 - 大圣玩偶
- 大圣归来观后感
- 《大圣归来》观后感
- 系统崩溃,大圣归来
- 2015071303 - 再谈大圣归来
- “大圣归来”的神运营
- 《大圣归来》为什么这么火
- Block这个诡异的大圣
- 图片画廊
- 图片画廊
- 图片画廊
- 我的Android进阶之旅------>Android嵌入图像InsetDrawable的用法
- MAC OS X常用快捷键
- Android SupportV4 LruCache源码分析
- php empty 和空字符串区别
- NYOJ 457 大小写互换
- 大圣画廊v0.3.5
- 迅雷下载Android SDK
- 探究网上的一个用MATLAB写的SIFT
- C++归并排序总结
- 使用simhash算法对网页去重
- shell 中 seq的用法总结
- SSH上传文件时报错
- Delete Node in a Linked List
- 杭电 hdu 1102 Constructing Roads (最小生成树)