この質問は、同じページのさまざまなユーザーに入力を提示することに関するものです。単一の catch all Form を作成し、さまざまなフィールドを非表示にする必要がありますか? それとも、ユーザーごとにまったく異なるフォームを使用する必要がありますか? それとも別のオプションですか?
質問する
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)
...
2 つのフォームが十分に異なっていて、意味のある共通のベースを共有していない場合は、2 つの異なるフォームを作成してください。
フォームをセットアップしたら、ユーザーのパラメーターに基づいて、ビューでいずれかのフォームをレンダリングします。
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 に答える