如何在UpdateView中为不同类型的用户更改模型?我有 Student
和 Teacher
继承自 AbstractBaseUser
,我需要为他们编辑
class EditUser(UpdateView):
 success_url ='/ success /'
 template_name ='edit-profile.html'
 model =老师(我需要选择这个老师或学生)



 我知道 get_template_names(self)
方法或 get_success_url(self)
,但找不到任何 get_model
方法。
我需要一些像:
def get_model_name(self):
 if self.request.user.user_type =='teacher':
返回老师
 if self.request.user.user_type =='student':
返回Studend



 谢谢。

答案 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
方法