0
のための異なるフィールドリストは私がCBVからUpdateViewがありますか?例えばUpdateView特定のユーザータイプ
:
if request.user.pk == 1:
fields = ['name', 'job', ]
else:
fields = ['name', 'title', ]
私はこれをオーバーライドすることができますか?
のための異なるフィールドリストは私がCBVからUpdateViewがありますか?例えばUpdateView特定のユーザータイプ
:
if request.user.pk == 1:
fields = ['name', 'job', ]
else:
fields = ['name', 'title', ]
私はこれをオーバーライドすることができますか?
これを行う1つのオプションは、2つの異なるフォームクラスを定義し、次にget_form_class
を上書きすることです。 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
モデルを特定のモデルに設定するだけですか?私は – Sayse
と答えるのに十分な情報がここにあるかどうか分からないのは、あなたがスタッフかスーパーユーザーかをチェックしようとしているのですか? –
@GeorginaSいいえ、私は、特定のユーザタイプのためにフォームに異なるフィールドを表示しようとしています(これは重要ではありません)。 – user4812479812