Собственно тут уже был ответ, что необходимо использовать __init__, но я видимо не до конца понимаю как оно работает вообще и мой код не запускается.
from django import forms
from .models import Container
from .my_defs import tree_parse
class ContainerForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(ContainerForm, self).__init__(*args, **kwargs)
in_container_id = forms.ChoiceField(choices=tree_parse(0, 'choice', user))
class Meta:
model = Container
fields = ('title', 'descripton', 'in_container_id')
У меня объекты Containers образуют древовидную структуру, tree_parse - это функция которой передаются id контейнера для которого надо построить древо (0), формат древа ('choce') и пользователя, который делает запрос, в ответ она возвращает список, пригодный для вставки в ChoiceField.
Выдаётся ошибка NameError: name 'user' is not defined.
Оюъясните, пожалуйста, что я делаю не так? Спасибо