Size: a a a

Django [ru] #STAY HOME

2019 November 01

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
А что, встроенный unique validator не помогает?
источник

V

Valera in Django [ru] #STAY HOME
Может быть кто-то знает, в чем может быть проблема.
Опишу ситауцию.
У меня есть сигнал, который срабатывает после сохранения объекта  и отправляет клиенту изменившийся ID объекта. Клиент сразу же после этого делает запрос, отправляя ID изменившегося объекта, на получение актуальной информации. Но суть в том, что иногда при запросе акутальной инфы, приходит старая, которая была до сохранения.
Обычно наблюдается, когда такой алгоритм повторяется либо быстро, либо в последующие разы после первого, потому что в первый раз все ок.
В чем может быть проблема? Я думал, что может быть из-за того, что у post_save use_caching=True, но оказалось проблема не в этом.
источник

V

Valera in Django [ru] #STAY HOME
+ нигде не используется джанговское кэширование или какое-либо еще
источник

DT

Dan Tyan in Django [ru] #STAY HOME
сигнал может отработать
до того как отработает транзакция
по хорошему надо ставить какойто делай чтобы она закрылась
источник

F

Fred in Django [ru] #STAY HOME
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
сигнал может отработать
до того как отработает транзакция
по хорошему надо ставить какойто делай чтобы она закрылась
а есть инфа на этот счет где-то? Делай ставить на какой промежуток?) И ставить у клиента или при отправке пушей?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Valera
а есть инфа на этот счет где-то? Делай ставить на какой промежуток?) И ставить у клиента или при отправке пушей?
при отправке
тебе же надо получить актуальные данные
источник

F

Fred in Django [ru] #STAY HOME
при обновлении гурается на SIN если он остаётся таким же
источник

F

Fred in Django [ru] #STAY HOME
я хз чё делать
источник

DT

Dan Tyan in Django [ru] #STAY HOME
как варинат

если то что приходит не равен тому что есть в объекте
и таких sin больше нет в базе то присваивать

в противном случае не присваивать ?
источник

F

Fred in Django [ru] #STAY HOME
не понял
источник

DT

Dan Tyan in Django [ru] #STAY HOME
if patient_data.get('SIN') and examinee.SIN != patient_data.get('SIN') and not Examinee.objects.filter(SIN=patient_data.get('SIN')).existst():
   examinee.SIN = patient_data.get('SIN')
   examinee.save()
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
можно посмотреть на UpdatePatientSerializer?
источник

F

Fred in Django [ru] #STAY HOME
Pavel Zagrebelin
можно посмотреть на UpdatePatientSerializer?
он там есть
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
при отправке
тебе же надо получить актуальные данные
а можно как-то делать проверку на то, что транзакция завершилась и только полсе этого отправлять?
источник

F

Fred in Django [ru] #STAY HOME
Pavel Zagrebelin
можно посмотреть на UpdatePatientSerializer?
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
что-нибудь в духе
patient_data.update(instance.examinee, patient_data) и вернуть UniqValidator на поле ISN - пробовал?
источник

F

Fred in Django [ru] #STAY HOME
это как?
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
всё-таки patient_data - это сериализатор, и обнволять его объект надо в нём самом, а не где-нибудь ещё.
источник

F

Fred in Django [ru] #STAY HOME
проситете вечер..
источник