4

検証がログインしたユーザーに依存するフォームがあります。特定の値が有効なユーザーもいれば、無効なユーザーもいます。有効なものと無効なものは動的です。ユーザー グループごとに新しいフォームを作成することはできません。

さらに、これと同じ検証をより多くのフォームで行う必要があるため、カスタム フォーム フィールドを作成しました。このカスタム フォーム フィールドに、何らかの方法でユーザー インスタンスを渡して、値が有効かどうかを確認する必要があります。

これを行う方法?

4

2 に答える 2

7

私はそのようにやっています:

class EventForm(forms.ModelForm):
  def __init__(self, *args, **kwargs):
    user = kwargs.pop('user', None)
    # doing stuff with the user…
    super(EventForm, self).__init__(*args, **kwargs)

ビュークラス/メソッドでは、次のようにフォームをインスタンス化する必要があります:

form = EventForm(user=request.user, data=request.POST)
于 2013-07-24T10:17:26.723 に答える