javascript - 有没有办法在javascript(Django)中获取登录用户信息?

标签 javascript jquery ajax django

我制作了一个board 应用程序并使用django 框架实现了comment 功能。

我使用 jqueryajaxGETPOST 评论。

现在我想添加EditDelete 功能。

enter image description here

如图所示,有editdelete 按钮。我想要做的是仅针对当前用户发布的评论显示这些按钮。

这是我的 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;
    }
});

现在,我必须将当前登录的 usercomment.author_name 进行比较,以便我可以根据该结果添加按钮。但我不知道如何在 js 中获取当前 user 的信息。

需要你的帮助。谢谢

最佳答案

我假设您正在使用 session 身份验证。

您可以通过多种方式做到这一点。

首先,您可以通过执行以下操作在您的 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 混合在一起!如果您的脚本在另一个文件中,它根本无法运行。

所以,我会选择第一种方式。

希望对你有帮助

关于javascript - 有没有办法在javascript(Django)中获取登录用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39177215/

相关文章:

javascript - JS中的API获取数据

javascript - 是否可以从网页运行 Node 脚本?

javascript - 如何在UIWebView中使用Javascript?

javascript - 将元素设置为事件状态,将其他元素设置为非事件状态(动态)

javascript - 如何获取当前可拖动和可调整大小的 id?

javascript - 不需要响应的跨域 AJAX?

javascript - 页面上每个事件的 JS : Is that possible to show empty browser status line,

javascript - onClick 的 jQuery 动画不适用于连续点击

php - AJAX 评论框 -- 未捕获的语法错误 : Unexpected token <

javascript - 发送电子邮件表格并在同一页面上继续