Size: a a a

Django [ru] #STAY HOME

2019 October 17

ОК

Омурбек уулу Кайрат in Django [ru] #STAY HOME
Egor Mushet
Можно ли в джанго запилить сигнал на смену значения поля в моделе ?
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Это при условии, что засарять рантайм не страшно
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
В ином случае, сюда еще celery нужно воткнуть
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
И исполнять это как таск
источник

EM

Egor Mushet in Django [ru] #STAY HOME
Окей, тогда вопрос. У меня есть model.status
Статусы записаны в чойсес. Как можно запретить изминение поля напрямую через
model.status = new_status
model.save()
Так что я бы использовал model.set_status()  и внутри таску вызывал ?
источник

EM

Egor Mushet in Django [ru] #STAY HOME
потому что для некоторых статусов критично изминять другие обьекты в базе, поэтому я думал над сигналами, можно, конечно в save() это все засунуть, но больно много логики.
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
len
у меня опять беда, на этот раз на сервере нужно сделать джанго в контейнере, а mysql глобально. и эти заразы не хотят коннектиться(((
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db1',
        'USER': 'django',
        'PASSWORD': '1111',
        'HOST': '127.0.0.1',
        'PORT': '3306',}}

mysql запущен не через докер, база создана, пользователь и права тоже.
Если докер свежий - host.docker.internal
Или https://github.com/qoomon/docker-host
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Egor Mushet
Окей, тогда вопрос. У меня есть model.status
Статусы записаны в чойсес. Как можно запретить изминение поля напрямую через
model.status = new_status
model.save()
Так что я бы использовал model.set_status()  и внутри таску вызывал ?
Ты хочешь запретить изменение статуса но при этом чтоб из таска можно было?
источник

EM

Egor Mushet in Django [ru] #STAY HOME
Cyberdine Engineering🐤
Ты хочешь запретить изменение статуса но при этом чтоб из таска можно было?
Хочу делать это только через сеттер
источник

l

len in Django [ru] #STAY HOME
хм, ок, с этим надо разбираться
источник

Z

ZHU in Django [ru] #STAY HOME
Cyberdine Engineering🐤
RequestEdition.objects.create(
       CheckidRequestEdition.objects.get(id=request.data.get("this_request"))
)
r = RequestEdition.objects.create(v.request_edition)
r.quantity = v.request_edition.quantity - v.quantity
r.save()

не идет так
источник

EM

Egor Mushet in Django [ru] #STAY HOME
Мне кажется в С++ это просто было бы приватным свойством класса, но в питоне ничего такого не знаю
источник

Z

ZHU in Django [ru] #STAY HOME
не подойдет
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Egor Mushet
Хочу делать это только через сеттер
Тогда в методе сейф сделать правило. Как константу я бы создает переменную в environ и если переменная является фолс, тогда сефв бы не работал

Как то так
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
ZHU
r = RequestEdition.objects.create(v.request_edition)
r.quantity = v.request_edition.quantity - v.quantity
r.save()

не идет так
А ты инстанцию правильно распарсил чтоб ее сохранять?
источник

EM

Egor Mushet in Django [ru] #STAY HOME
Cyberdine Engineering🐤
Тогда в методе сейф сделать правило. Как константу я бы создает переменную в environ и если переменная является фолс, тогда сефв бы не работал

Как то так
спасибо, сделаю
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Egor Mushet
спасибо, сделаю
И в обратном порядке. В сеттере задать этой же переменной значение тру. И тогда сейв сработает
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Cyberdine Engineering🐤
И в обратном порядке. В сеттере задать этой же переменной значение тру. И тогда сейв сработает
Точнее в обработчике сеттера
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Egor Mushet
Мне кажется в С++ это просто было бы приватным свойством класса, но в питоне ничего такого не знаю
В питоне можно только правила задать
Т.е. условия
источник

Z

ZHU in Django [ru] #STAY HOME
Cyberdine Engineering🐤
А ты инстанцию правильно распарсил чтоб ее сохранять?
r = RequestEdition.objects.create(
   edition=v.request_edition.edition,
   shipper=v.request_edition.shipper,
   provider=v.request_edition.provider,
   author=v.request_edition.author,
   date_time=v.request_edition.date_time,
   checkid=v.request_edition.checkid,
   quantity=v.request_edition.quantity - v.quantity
)

ты хочешь сказать надо так сделать ?
источник