Size: a a a

Django [ru] #STAY HOME

2019 November 19

AG

Artem Gubatenko in Django [ru] #STAY HOME
по первому вопросу я писал выше: как прокинуть request в форму
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
А логика: в save(), в self.cleaned_data, будут данные из полей формы.
Бери делай нужные манипуляции и делай insert/update в др. модель
источник

Т

Тимур in Django [ru] #STAY HOME
то есть все же разделить формы
и сохранение юрл переопределить, и в нем дать сохранение другой формы)))
сложна
источник

A

Alex in Django [ru] #STAY HOME
Dan Tyan
если хочешь использовать метод надо передавать туда callable объект
Прошу прощения, а как это сделать?
источник

Т

Тимур in Django [ru] #STAY HOME
Artem Gubatenko
    def __init__(self, *args, request, **kwargs):
       self.request = request
       super().__init__(*args, **kwargs)

у меня вот так точно работает, попробуй
а это прокидывание реквеста в форму
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alex
Прошу прощения, а как это сделать?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Тимур
то есть все же разделить формы
и сохранение юрл переопределить, и в нем дать сохранение другой формы)))
сложна
ну если хочешь в другую модель тоже через форму сохранять, то - да

или в форме с УРЛ полем, можешь продублировать поля и там будут все данные для сохранения

а так как в модели нет этих полей, то сохранится только сформированный тобой УРЛ
источник

Н

Никита in Django [ru] #STAY HOME
Artem Gubatenko
А логика: в save(), в self.cleaned_data, будут данные из полей формы.
Бери делай нужные манипуляции и делай insert/update в др. модель
а в обычном CreateView как подобное дернуть?
источник

A

Alex in Django [ru] #STAY HOME
благодарю!
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Никита
а в обычном CreateView как подобное дернуть?
в форме self.cleaned_data формируется после is_valid()

можешь после получить их - form.cleaned_data

И это dict()
источник

Т

Тимур in Django [ru] #STAY HOME
Artem Gubatenko
в форме self.cleaned_data формируется после is_valid()

можешь после получить их - form.cleaned_data

И это dict()
    def save(self, force_insert=False, force_update=False, commit=True):
       ad = super(AdForm, self).save(commit=False)
       ad_url = self.cleaned_data['ad_url']
       #data = parse(ad_url)
       if commit:
           ad.save()
           return ad


правильно же переопределяю?
источник

Н

Никита in Django [ru] #STAY HOME
Artem Gubatenko
в форме self.cleaned_data формируется после is_valid()

можешь после получить их - form.cleaned_data

И это dict()
спасибо
а есть нормальные книжки по кишкам джанго или проще код раскуривать?
источник

Т

Тимур in Django [ru] #STAY HOME
Никита
спасибо
а есть нормальные книжки по кишкам джанго или проще код раскуривать?
проще в чате к людям приставать)))) (шутка)
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Доки
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
def save(self, force_insert=False, force_update=False, commit=True):

замени на :
def save(self, commit=True):


а твою логику формирования УРЛ я не знаю
источник

Т

Тимур in Django [ru] #STAY HOME
ну там я разберусь)
спасибо
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
Тимур
    def save(self, force_insert=False, force_update=False, commit=True):
       ad = super(AdForm, self).save(commit=False)
       ad_url = self.cleaned_data['ad_url']
       #data = parse(ad_url)
       if commit:
           ad.save()
           return ad


правильно же переопределяю?
return ad на один отступ назад. Обычно возврат идёт в любом случае с коммитом сохранение или без него.
источник

Т

Тимур in Django [ru] #STAY HOME
понял принял
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
может потому и null сохраняются, что ad не возвращается, если commit=False.
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
(хотя смотря где).
источник