Python UpdateView-特定用户类型的不同字段列表
我从CBV获得了更新视图:Python UpdateView-特定用户类型的不同字段列表,python,django,Python,Django,我从CBV获得了更新视图: class AuthorUpdate(UpdateView): model = Author fields = ['name'] 如何为特定的用户类型设置不同的字段列表 例如: if request.user.pk == 1: fields = ['name', 'job', ] else: fields = ['name', 'title', ] 我在哪里可以重写它?一个选项是定义两个不同的表单类,然后重写。您可以
class AuthorUpdate(UpdateView):
model = Author
fields = ['name']
如何为特定的用户类型设置不同的字段列表
例如:
if request.user.pk == 1:
fields = ['name', 'job', ]
else:
fields = ['name', 'title', ]
我在哪里可以重写它?一个选项是定义两个不同的表单类,然后重写。您可以使用
self.request.user
访问用户,然后返回相应的表单类
class JobForm(forms.ModelForm):
class Meta:
fields = ['name', 'job']
class TitleForm(forms.ModelForm):
class Meta:
fields = ['name', 'title']
class AuthorUpdate(UpdateView):
model = Author
def get_form_class(self):
if self.request.user.pk == 1:
return JobForm
else:
return TitleForm
一种方法是定义两个不同的表单类,然后重写。您可以使用
self.request.user
访问用户,然后返回相应的表单类
class JobForm(forms.ModelForm):
class Meta:
fields = ['name', 'job']
class TitleForm(forms.ModelForm):
class Meta:
fields = ['name', 'title']
class AuthorUpdate(UpdateView):
model = Author
def get_form_class(self):
if self.request.user.pk == 1:
return JobForm
else:
return TitleForm
只需将模型设置为特定的模型?我不确定这里是否有足够的信息来回答您是否正在尝试检查用户是员工还是超级用户?@GeorginaS否,我正在尝试根据特定的用户类型或其他对象值(这并不重要)在表单中显示不同的字段。只需将模型设置为特定的?我不确定这里是否有足够的信息来回答您是否要检查用户是staff还是super user?@GeorginaS否,我正在尝试为特定的用户类型或其他对象值以不同的形式显示不同的字段(这并不重要)。