如何根据登录的用户来匹配页面上的不同内容?

时间:2018-12-20 11:33:02

标签: django authentication

我刚开始使用django,但在了解如何在Web应用程序上使用auth时遇到一些问题。因此,基本上,我无法理解如何实现是在每个用户的页面上显示不同的内容

我的应用程序是一个在线编辑器,每个用户都可以用来编写其代码并进行存储。我已经实现了注册/登录,现在我需要为每个用户使用一个不同的文件系统并适当地显示它。

我不知道为什么我在任何地方都找不到这个答案,但是我真的对这个问题不知所措,并且我的进步为零。

3 个答案:

答案 0 :(得分:0)

我认为您需要扩展用户模型。您可以关注有关扩展django自定义用户模型的本文。

https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html

答案 1 :(得分:0)

您可以检查用户拥有哪些权限,并针对不同类型的用户实施不同的逻辑:

name=value

如果要实现自定义权限,可以选中docs

答案 2 :(得分:0)

您有 2 个简单的方法可以做到这一点:

1-内部模板

2-内部视图

在以下情况下更喜欢:

模板-当您要分隔的内容较少时,请使用模板方法。 该怎么做?

 `{% if user.is_superuser %}


     <some html> 
     #Your html for Superuser  

     #you can also include a another html file
     {% include "App_name/Superuser_view.html" %}


  {% else %}

     <some html>
     #Your html for Staff or whoever  

     #you can also include a another html file
     {% include "blazon/employee_view.html" %}  


  {% endif %}`

内部视图::当您需要在用户类型之间呈现大量html差异时,请使用此方法。

def view(request):
    if request.user.is_superuser():
        #your View Function & return it individually 

    elif request.user.is_admin():
        #your View Function

    else request.user.is_staff():
        #your View Function