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



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

class EditUser(UpdateView):
    success_url = '/success/'
    template_name = 'edit-profile.html'
    model = Teacher (I need to choose this Teacher or Student)

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

def get_model_name(self):
    if self.request.user.user_type == 'teacher':
        return Teacher
    if self.request.user.user_type == 'student':
        return Studend

谢谢。

根据 Django 文档:

model

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

queryset

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

get_queryset()

返回将用于检索对象的查询集 将显示此视图。默认情况下,get_queryset()返回值 的 queryset 属性(如果已设置),否则构造 通过对模型属性的默认值调用 all() 方法进行QuerySet 经理。

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

最新更新