私は、フォームで請求書プロバイダを選択するためにModelChoiceFieldを使用しています。現在のケースでは、すべてのプロバイダをクエリーセットに戻しています。forms.pyで現在署名されているユーザーを取得するには?
しかし、私は署名されたユーザーによって作成されたプロバイダのみを返すべきです。プロバイダーにはuser
という名前のForeignKeyフィールドがあります。ここで
は私のフォームです:
class InvoiceCreationForm(forms.Form):
# ...
provider = forms.ModelChoiceField(
label='Provider',
required=False,
queryset=Provider.objects.all(),
widget=forms.Select(attrs={
'name': 'provider',
'class': 'form-control',
'id': 'input-invoice-provider',
})
)
私はこのようなオブジェクトをフィルタする必要があります。
Provider.objects.filter(user=current_user)
どのように私が署名したユーザーを得ることができますか?または、どのようにビューの外にrequest
オブジェクトを取得できますか?私はフォームの__init__
メソッドから現在のユーザーを取得しようとしたself.user
に設定します。しかし、self.user
のようなクエリでは使用できません。
試したコードを表示してください。 –
@ DanielRosemanこの回答:http://stackoverflow.com/a/7300076/4471283 –