这个问题是关于向同一页面的不同用户呈现输入。我应该创建一个捕获所有表单并隐藏不同的字段吗?或者我应该为不同的用户使用完全不同的表单?或者也许是另一种选择?
问问题
259 次
1 回答
1
如果这就是您的意思,您不应该以“html”方式隐藏表单。
如果管理员表单建立在普通表单之上,您可以使用表单继承。
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)
...
于 2013-01-22T07:25:08.353 回答