此问题是关于向同一页面的不同用户显示输入。我应该创建一个单独的捕获所有窗体并隐藏不同的字段吗?或者我应该为不同的用户使用完全不同的表单?或许是另一种选择?
答案 0 :(得分:1)
如果这是你的意思,你不应该以'html'方式隐藏表单。
如果Admin表单基于普通表单构建,则可以使用表单继承。
class BaseForm(forms.Form):
name = forms.CharField(max_length=50)
...
#Admin form inherits BaseForm
class AdminForm(BaseForm):
occupation = forms.CharField(max_length=50)
...
如果两种形式完全不同,并且不共享有意义的共同基础,则只需创建两种不同的形式。
设置好表单后,根据用户的参数,让您的视图呈现一种形式或另一种形式。
def createView(request):
if request.method == 'POST':
if request.user.is_superuser:
form = AdminForm(request.POST)
else:
form = BaseForm(request.POST)
...