django为不同的用户提供不同的界面

django为不同的用户提供不同的界面,django,django-templates,django-views,Django,Django Templates,Django Views,我有一个模型user2,它的用户模型有一对一字段, user2还有一个字段user_类型,可以是“etud”、“ensg”、“chef”或“tech”。我想做的是为每种类型的用户提供不同版本的网站,目前我所做的是在一个页面上保存所有内容,然后检查用户类型中的一些特定HTML标记,并对所有网站页面执行此操作。那么,我该怎么做呢?我使用的方法是最好的吗?有多种方法 基于用户类型呈现页面 假设它们位于URL/home/,在调用home_view()之后,您可以映射不同的主页 在这里,您必须从该模板创建

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

有多种方法

基于用户类型呈现页面

假设它们位于URL/home/,在调用home_view()之后,您可以映射不同的主页

在这里,您必须从该模板创建泛型base_home.html,您必须使用带有diff主题的特定于类型的模板

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

如果您想使用更通用的方法检查,有多种方法

基于用户类型呈现页面

假设它们位于URL/home/,在调用home_view()之后,您可以映射不同的主页

在这里,您必须从该模板创建泛型base_home.html,您必须使用带有diff主题的特定于类型的模板

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
如果您想使用更通用的方式检查