Задать вопрос
@Hadmi

Передача текущего пользователя к Forms.py — в чём ошибка?

Собственно тут уже был ответ, что необходимо использовать __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.
Оюъясните, пожалуйста, что я делаю не так? Спасибо
  • Вопрос задан
  • 480 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@id2669099
там где вызываете эту форму должно быть как-то так
form = ContainerForm(user=request.user)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы