【问题标题】:django different interfaces for different usersdjango针对不同用户的不同界面
【发布时间】:2018-03-26 12:56:38
【问题描述】:

我有一个模型 user2 与用户模型一对一的字段, user2 有一个额外的字段 user_type,它可以是“etud”、“ensg”、“chef”或“tech”。我想做的是为每种类型的用户提供不同版本的网站,目前我正在做的是将所有内容都放在一个页面上,然后检查用户类型是否有一些特定的 HTML 标签,然后我m 为所有网站页面执行此操作。那么,我该怎么做呢?我用的方法是最好的吗?

【问题讨论】:

    标签: django django-templates django-views


    【解决方案1】:

    有多种方法可以做到。

    基于用户类型呈现页面

    假设他们登陆 URL /home/,您可以在调用 home_view() 之后映射不同的主页。

    在这里你必须从这个模板创建通用 base_home.html 你必须 extends user_type 具有差异主题的特定模板。

    def home_view(request):
       context = {}  # add your template context here common for all user.  
       if request.user.user_type == "etud":
           # update your user_type specific context here.
           template_name = etud_home.html
           response = TemplateResponse(request, template_name, context)
           return response
       if request.user.user_type == "ensg":
           template_name = ensg_home.html
           response = TemplateResponse(request, template_name, context)
           return response
    

    如果您想使用更通用的方式,请查看process_template_response middleware

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 2019-05-30
      • 1970-01-01
      • 2011-07-16
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      相关资源
      最近更新 更多