0.4.0更新,增加照片评论功能,需要登录。
模型models.py
#v0.4.0 增加照片评论
class Comment(models.Model):
content=models.CharField(max_length=5000)
author=models.ForeignKey(User,related_name=‘user_comments‘)
time=models.DateTimeField(auto_now_add=True)
photo=models.ForeignKey(Photo,related_name=‘photo_comments‘)
def __unicode__(self):
return u‘%s‘%(self.content)
增加一个Comment类,Photo和User作为外键指定,也就是每一个Comment对象有对应的照片和作者,这样就能对应起来了。
模板photo.html
在图片界面,下面增加一个评论框,之后小更新了一下首页把已有评论放在图片下面。
photo.html
{% if user.is_authenticated %}
<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>
{% else %}
<h3>评论照片需要登录噢亲~</h3>
{% endif %}
index.html
{% for cmt in photo.photo_comments.all %}
<div class="list-group">
<div class="list-group-item">
<h4 class="list-group-item-head">{{cmt.content}}</h4>
<p class="list-group-item-text" align="right">——{{cmt.author}}</p>
<p class="list-group-item-text" align="right">at {{cmt.time}}</p>
</div>
</div>
{% endfor %}
视图views.py
def show_photo(request,id):
photo=Photo.objects.get(pk=id)
if request.method==‘POST‘:
content=request.POST.get(‘content‘)
new_comment=Comment.objects.create(
content=content,
author=request.user,
photo=photo
)
new_comment.save()
photo.photo_comments.add(new_comment)
photo.save()
return HttpResponseRedirect(‘/p/%s‘ %id)
else:
return render_to_response(‘photo.html‘,RequestContext(request,{‘photo‘:photo}))
完。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-11 22:56:47