Передать данные в поле ChoiceField формы django
Я создал формы и мне нужно заполнить значения полей ChoiceField в зависимости от авторизованного user. Т.е. вывести в список категории для конкретного пользователя.
Во views.py я получаю пользователя request.user и могу сделать выборку категорий из базы для этого пользователя
Category.objects.filter(user=self.request.user)
А как быть, если выборка формируется в отдельном файле forms.py?
class FilterForm(forms.Form):
category = TreeNodeChoiceField(queryset=Category.objects.all())
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Нашел ответ на этом форуме.
class FilterForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(FilterForm, self).__init__(*args, **kwargs)
self.fields['storage'].queryset = Category.objects.filter(user=self.user)
Во views.py
context['things'] = FilterForm(self.request.GET, user = self.request.user)