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

时间:2016-08-27 03:35:22

标签: javascript jquery ajax django

我使用board框架制作了comment个应用程序并实现了django函数。

我使用jquery& ajaxGETPOST条评论。

现在我要添加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进行比较,以便我可以根据该结果添加按钮。但我不知道如何在user中获取当前js个信息。

需要你的帮助。谢谢

2 个答案:

答案 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>