Я использую ModelChoiceField для выбора поставщика счетов в своих формах. В текущем случае я возвращаю всех Провайдеров к набору запросов.Как получить текущий подписанный пользователь в forms.py?
Но я должен вернуть только поставщиков, созданных подписываемым пользователем. У провайдера есть поле ForeignKey с именем user
.
Вот моя форма:
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 –