我使用board
框架制作了comment
个应用程序并实现了django
函数。
我使用jquery
& ajax
至GET
和POST
条评论。
现在我要添加Edit
和Delete
功能。
正如您在图片中看到的,有edit
和delete
按钮。我尝试做的只是为当前用户发布的评论显示这些按钮。
这是我的ajax
获取comments API
评论的一部分。
$.ajax({
url: commentURL,
type: "GET",
success: function(data){
var numOfComments = data.length;
$(commentCountElement).html(numOfComments);
data.forEach(function(comment){
/* Get data from API results */
var commentUsername = comment.author_name;
var commentContent = comment.content;
var commentCreatedAt = comment.created_at;
var commentID = comment.id;
/* Create html li */
var listElement = $("<li>").addClass("comment-box");
/* Create div comment-meta */
var commentMetaDiv = $("<div>").addClass("comment-meta");
$(commentMetaDiv).append($("<span>").text(commentUsername));
$(commentMetaDiv).append($("<span>").addClass("date").text(commentCreatedAt));
/* Create div comment-content */
var commentContentDiv = $("<div>").addClass("comment-content");
$(commentContentDiv).text(commentContent);
/* Append */
$(listElement).append(commentMetaDiv);
$(listElement).append(commentContentDiv);
$(commentUnorderedListElement).append(listElement);
});
},
error: function(data){
console.log(textStatus);
return false;
}
});
现在,我必须将当前登录user
与comment.author_name
进行比较,以便我可以根据该结果添加按钮。但我不知道如何在user
中获取当前js
个信息。
需要你的帮助。谢谢
答案 0 :(得分:2)
我假设您正在使用会话身份验证。
你可以通过多种方式实现。
首先,您可以通过执行以下操作在comments API
中添加额外字段:
comments['editable'] = request.user.user_name == comment.author_name
如果为True,则用户可以编辑注释,反之亦然。我相信这是一种更好的方式。
第二种方式是直接在你的脚本中访问django用户并进行比较:
<script>
var editable = comment.author_name == {{ request.user.user_name }}
</script>
这不是一个好方法。因为你正在混合django变量和jquery!如果您的脚本位于另一个文件中,则根本不起作用。
所以,我会采用第一种方式。
希望有所帮助
答案 1 :(得分:0)
在模板中:
<script>
var reply_name = {{ request.user.user_name }};
get_comment(repay_name) #call what you want using js
</script>