Size: a a a

Django [ru] #STAY HOME

2019 November 19

AG

Artem Gubatenko in Django [ru] #STAY HOME
Тимур
понял принял
еще смотри: вызов супер сохраняет данные и ты еще ниже делаешь save() уже у модели

сохраняешь в форме:
ad = super(AdForm, self).save(commit=False)


сохраняешь в модели:
if commit:
  ad.save()
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Artem Gubatenko
еще смотри: вызов супер сохраняет данные и ты еще ниже делаешь save() уже у модели

сохраняешь в форме:
ad = super(AdForm, self).save(commit=False)


сохраняешь в модели:
if commit:
  ad.save()
а, про коммит забыл
источник

Т

Тимур in Django [ru] #STAY HOME
у меня  ж так и иждет
источник

Н

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

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

И это dict()
Спасибище, я это сделал
источник

SB

So Byte in Django [ru] #STAY HOME
Всем привет! Подскажите как быть... У меня имеется продукт и у продукта есть статусы "Ожидает" и "Куплен" и по коду товар не может быть куплен два раза подряд, он делает запрос к бд и проверяет в каком статусе товар на данный момент. Но бывают такие ситуации когда народ просто одновременно каким то образом это делает и товар два раза подряд уходит в куплено и списывает деньги.
источник

Т

Тимур in Django [ru] #STAY HOME
So Byte
Всем привет! Подскажите как быть... У меня имеется продукт и у продукта есть статусы "Ожидает" и "Куплен" и по коду товар не может быть куплен два раза подряд, он делает запрос к бд и проверяет в каком статусе товар на данный момент. Но бывают такие ситуации когда народ просто одновременно каким то образом это делает и товар два раза подряд уходит в куплено и списывает деньги.
я не знаю есть ли в джанговской орм пул конектов
но возможно дело в нем
источник

SB

So Byte in Django [ru] #STAY HOME
So Byte
Всем привет! Подскажите как быть... У меня имеется продукт и у продукта есть статусы "Ожидает" и "Куплен" и по коду товар не может быть куплен два раза подряд, он делает запрос к бд и проверяет в каком статусе товар на данный момент. Но бывают такие ситуации когда народ просто одновременно каким то образом это делает и товар два раза подряд уходит в куплено и списывает деньги.
Есть у кого ещё варианты?
источник

Т

Тимур in Django [ru] #STAY HOME
Artem Gubatenko
еще смотри: вызов супер сохраняет данные и ты еще ниже делаешь save() уже у модели

сохраняешь в форме:
ad = super(AdForm, self).save(commit=False)


сохраняешь в модели:
if commit:
  ad.save()
а поля которые в модели просто задаю
user = self.request.user
ad_url = ...
и тд?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
user = self.request.user
- это не поле модели, в БД его не будет и оно не регистрируется как Field
источник

Т

Тимур in Django [ru] #STAY HOME
а как его в кастомном сейве передать
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Тимур
а как его в кастомном сейве передать
в форме? через
__init__()
источник

Т

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

AG

Artem Gubatenko in Django [ru] #STAY HOME
форма сама знает что куда, исходя из того какие поля ты прописал
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
в self.cleaned_data все уже по полям разложено

там только то что уйдет на сохранение
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
если нужно что-то для другой модели сохранить - то вручную: Model.objects.create(...) и т.д.
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
т.к. форма работает со своей моделью и её объектом.
источник

Т

Тимур in Django [ru] #STAY HOME
ну допустим..
простой пример
у меня есть форма
в ней 3 поля
юрл
юзер
и юрл + что то еще

пользователь отправляет только юрл
а юрл+что то еще я хочу определить сам в кастомном сохранении
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
Типа такого.
...
obj = super().save()
obj.field = "что-то ещё"
obj.save()
...
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Farid Khalikov
Типа такого.
...
obj = super().save()
obj.field = "что-то ещё"
obj.save()
...
это в модели ?
источник

FK

Farid Khalikov in Django [ru] #STAY HOME
при условии, что "что-то ещё" - это поле той же модели.
источник