1.在urls.py 文件里面
# 课程评论
url(r'^comments/(?P<course_id>\d+)/$',CommentView.as_view(),name='course_comments'),
# 添加课程评论
url(r'^add_comment/$',AddCommentView.as_view(),name='add_comment'),
2.在 views.py文件里面
# 课程评论
class CommentView(LoginRequiredMixin,View):
def get(self,request,course_id):
courses = Courses.objects.get(id=int(course_id))
all_resources = CourseResource.objects.filter(course=courses)
all_comment = CourseComments.objects.all()
content = {
'courses':courses,
'course_resources': all_resources,
'all_comment':all_comment,
}
return render(request,'course-comment.html',content)
# 用户添加课程评论
class AddCommentView(View):
def post(self,request):
if not request.user.is_authenticated():
# 判断用户是否登陆
content = {
'status':'fail',
'msg':'用户未登录',
}
return HttpResponse(content, content_type='application/json')
course_id = request.POST.get('course_id',0)
comments = request.POST.get('comments','')
if course_id > 0 and comments:
course_comments = CourseComments()
course = Courses.objects.get(id=int(course_id))
course_comments.course = course
course_comments.comments = comments
course_comments.user = request.user
course_comments.save()
content = {
'status': 'success',
'msg': '评论成功',
}
return HttpResponse(content, content_type='application/json')
else:
content = {
'status': 'fail',
'msg': '评论失败',
}
return HttpResponse(content, content_type='application/json')
3.在HTML里面:
<script type="text/javascript">
//添加评论
$('#js-pl-submit').on('click', function(){
var comments = $("#js-pl-textarea").val()
if(comments == ""){
alert("评论不能为空")
return
}
$.ajax({
cache: false,
type: "POST",
url:"{% url 'course:add_comment' %}",
data:{'course_id':{{ courses.id }}, 'comments':comments},
async: true,
beforeSend:function(xhr, settings){
xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}");
},
success: function(data) {
if(data.status == 'fail'){
if(data.msg == '用户未登录'){
window.location.href="/login/";
}else{
alert(data.msg)
}
}else if(data.status == 'success'){
window.location.reload();//刷新当前页面.
}
},
});
});
</script>
{% for course_resource in course_resources %}
<li>
<span><i
class="aui-iconfont aui-icon-file"></i> {{ course_resource.name }}</span>
<a href="{{ MEDIA_URL }}{{ course_resource.download }}" class="downcode"
target="_blank" download="" data-id="274" title="">下载</a>
</li>
{% endfor %}