我制作了一个board应用程序,并使用django框架实现了comment功能。
我使用jquery & ajax来GET和POST注释。
现在我想添加Edit和Delete函数。

正如你在图片中看到的,这里有edit和delete按钮。我想要做的是只为当前用户发布的评论显示这些按钮。
这是我从comments API获取评论的ajax的一部分。
$.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进行比较,以便根据结果添加按钮。但我不知道如何在js中获取当前user的信息。
需要你的帮助。谢谢
发布于 2016-08-27 14:03:49
我假设您使用的是会话身份验证。
您可以通过几种方式来完成此操作。
首先,您可以通过执行以下操作在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混合在一起!如果您的脚本在另一个文件中,它将完全不起作用。
所以,我会选择第一种方法。
希望能有所帮助
发布于 2016-08-27 13:59:42
在您的模板中:
<script>
var reply_name = {{ request.user.user_name }};
get_comment(repay_name) #call what you want using js
</script>https://stackoverflow.com/questions/39177215
复制相似问题