基于类的视图UpdateView django不同类型的模型

时间:2016-02-03 20:16:38

标签: django django-class-based-views

如何在UpdateView中为不同类型的用户更改模型?我有 Student Teacher 继承自 AbstractBaseUser ,我需要为他们编辑

&#xA;&#xA; < pre> class EditUser(UpdateView):&#xA; success_url ='/ success /'&#xA; template_name ='edit-profile.html'&#xA; model =老师(我需要选择这个老师或学生)&#xA; &#xA;&#xA;

我知道 get_template_names(self)方法或 get_success_url(self),但找不到任何 get_model 方法。&#xA;我需要一些像:

&#xA;&#xA;
  def get_model_name(self):&#xA; if self.request.user.user_type =='teacher':&#xA;返回老师&#xA; if self.request.user.user_type =='student':&#xA;返回Studend&#xA;  
&#xA;&#xA;

谢谢。

&#xA;

1 个答案:

答案 0 :(得分:0)

根据Django documentation

  

model

     

此视图将显示数据的模型。指定model = Foo   实际上与指定queryset = Foo.objects.all()相同,   其中objects代表Foo的默认管理员。

     

queryset

     

表示对象的QuerySet。如果提供,则为   queryset取代为model提供的值。

     

get_queryset()

     

返回将用于检索其对象的查询集   此视图将显示。默认情况下,get_queryset()返回值   如果设置了queryset属性,否则它构造一个   QuerySet通过在模型属性的默认值上调用all()方法   管理器。

因此,您只需要重新定义get_queryset方法