Size: a a a

Django [ru] #STAY HOME

2020 May 03

AG

Artem Gubatenko in Django [ru] #STAY HOME
yasya huyase
init() missing 1 required positional argument: 'request'
попробуй так
только при инициализации формы, не забудь передать request в форму
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
попробуй так
только при инициализации формы, не забудь передать request в форму
сейчас попробую
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
попробуй так
только при инициализации формы, не забудь передать request в форму
'NoneType' object has no attribute 'user'
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
yasya huyase
'NoneType' object has no attribute 'user'
как передавал request в класс формы?
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
разве не в сам метод передается реквкст?
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
Как параметр. Мне кажется да
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Petro Alexeenko
разве не в сам метод передается реквкст?
о каком методе речь?
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
в инит)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Petro Alexeenko
в инит)
в моем варианте ожидается что request будет передан именованным параметром
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
🤔
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
интересно
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
как передавал request в класс формы?
сделал так во вью формсета

def get_form_kwargs(self):
       kwargs = super(ContractFormSetCreateView, self).get_form_kwargs()
       kwargs.update({'request': self.request})
       return kwargs
источник

yh

yasya huyase in Django [ru] #STAY HOME
теперь в поле селекта нет вообще юзеров
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
yasya huyase
теперь в поле селекта нет вообще юзеров
а в форму попадает request?
принтани - проверь
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
а в форму попадает request?
принтани - проверь
нет
в консоли - None
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
yasya huyase
нет
в консоли - None
может ошибся при написании __init__() метода?
https://github.com/django/django/blob/b9cf764be62e77b4777b3a75ec256f6209a57671/django/views/generic/edit.py#L29

попробуй передать напрямую в get_form() методе
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
может ошибся при написании __init__() метода?
https://github.com/django/django/blob/b9cf764be62e77b4777b3a75ec256f6209a57671/django/views/generic/edit.py#L29

попробуй передать напрямую в get_form() методе
init так выглядит

def init(self, *args, **kwargs):
       request = kwargs.pop("request", None)
       super().init(*args, **kwargs)
       self.fields['recipient'].queryset = Contract.objects.exclude(recipient_id=request.user.id)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
а принтани args, kwargs что туда попадает?
источник

yh

yasya huyase in Django [ru] #STAY HOME
Artem Gubatenko
может ошибся при написании __init__() метода?
https://github.com/django/django/blob/b9cf764be62e77b4777b3a75ec256f6209a57671/django/views/generic/edit.py#L29

попробуй передать напрямую в get_form() методе
передал request вот так
def get_context_data(self, **kwargs):
       data = super(ContractFormSetCreateView, self).get_context_data(**kwargs)
       if self.request.POST:
           data["contractitems"] = ContractFormSet(
               self.request.POST, instance=self.object, request=self.request
           )
       else:
           data["contractitems"] = ContractFormSet(instance=self.object)
       return data

и теперь в поле recipient выдает список контрактов, где user!=request.user
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
yasya huyase
передал request вот так
def get_context_data(self, **kwargs):
       data = super(ContractFormSetCreateView, self).get_context_data(**kwargs)
       if self.request.POST:
           data["contractitems"] = ContractFormSet(
               self.request.POST, instance=self.object, request=self.request
           )
       else:
           data["contractitems"] = ContractFormSet(instance=self.object)
       return data

и теперь в поле recipient выдает список контрактов, где user!=request.user
у тебя же  - form_class = ContractModelForm ))
источник