首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法用javascript (Django)获取登录用户信息?

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

Stack Overflow用户
提问于 2016-08-27 11:35:22
回答 2查看 2.3K关注 0票数 1

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

我使用jquery & ajaxGETPOST注释。

现在我想添加EditDelete函数。

正如你在图片中看到的,这里有editdelete按钮。我想要做的是只为当前用户发布的评论显示这些按钮。

这是我从comments API获取评论的ajax的一部分。

代码语言:javascript
复制
$.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的信息。

需要你的帮助。谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-08-27 14:03:49

我假设您使用的是会话身份验证。

您可以通过几种方式来完成此操作。

首先,您可以通过执行以下操作在comments API中添加一个额外的字段:

代码语言:javascript
复制
comments['editable'] = request.user.user_name == comment.author_name

如果为True,则用户可以编辑注释,反之亦然。我相信这是一种更好的方式。

第二种方法是直接在脚本中访问django用户并进行比较:

代码语言:javascript
复制
<script>
   var editable = comment.author_name == {{ request.user.user_name }}
</script>

这不是一个好的方法。因为您将django变量与jquery混合在一起!如果您的脚本在另一个文件中,它将完全不起作用。

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

希望能有所帮助

票数 2
EN

Stack Overflow用户

发布于 2016-08-27 13:59:42

在您的模板中:

代码语言:javascript
复制
<script>
    var reply_name = {{ request.user.user_name }};
    get_comment(repay_name) #call what you want using js
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39177215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档