django为不同用户提供不同的接口

时间:2018-03-26 12:56:39

标签: django django-templates django-views

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

1 个答案:

答案 0 :(得分: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