首先先建一张表,该表拥有四个字段,其中有三个整型字段: id, gid(商品id), uid(用户id)。有一个字符串变量: content,用来存储评论。
那么首先在前端写一个textarea,以及一个用来提交的button。将该textarea绑定一个变量并设定最大字符数量,将该button绑定一个提价按钮。
1 2 3
| <textarea rows="10" v-autosize v-wordcount="100" v-model="comments"></textarea> <br> <Button color="blue" @click="submit_comment">评论</Button>
|
这里的Button标签使用的heyui,实际效果和button并无区别,只是美观。
textarea这里的v-wordcount=”100”,可以实现以下效果:
然后点击评论后判断一下字数,若是字数无误便提交至后台:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| submit_comment(){ if(this.comments.length > 100){ this.$Message('您的评论超出了长度限制'); return false } else{ var form_data = new FormData(); form_data.append('gid',this.good_msg.id); form_data.append('uid',localStorage.getItem('uid')); form_data.append('content', this.comments); this.axios({ url: 'http://127.0.0.1:8000/comment/', method: 'post', data: form_data }).then(res=>{ this.$Message(res.data.message); return false }) } },
|
然后下面是后台的代码,这里我使用了反序列化。
1 2 3 4 5 6 7 8 9 10 11 12
| class CommentsView(APIView):
def post(self, request): comment = CommentsSer(data=request.data) if comment.is_valid(): comment.save() return Response({'code': 200, 'message': '评论成功'}) else: return Response({'code': 200, 'message': '评论失败'})
|