> 17. 9. 2016 v 23:55, Vladimír Macek <ma...@sandbox.cz>:
> 
> Zdar,
> 
> jak řešíte nepříjemné dvojité POSTy, kdy uživatel poklepe na submit?

Jestli je problém, je uživatel double clickne na submit, tak řešit přes JS? 
OnClick -> Disable?

> V logu je něco takového:
> 
> 2016-09-17T18:34:35+02:00 "POST /accounts/signup/ HTTP/1.1" 499 ...
> 2016-09-17T18:34:36+02:00 "POST /accounts/signup/ HTTP/1.1" 500 ...
> 
> Tj. na první POST Django stihne uživatele zaregistrovat, ale nginx zjistí,
> že browser mezitím zavřel spojení (499) a čeká na spojení dalším. Tam ovšem
> zařve postgres, že uživatel s tímto e-mailem už existuje.
> 
> Pořádné webové aplikaci by se podle mě tohle nemělo stát a druhému POSTu by
> měla vrátit to samé, co BY vrátila tomu prvnímu.

To se mi moc nezdá. Musel bys nějak identifikovat, že oba requesty přišly od 
stejného uživatele.
Dokončí Django první request, když nginx vrátí 499? Nebo ho nginx “utne”?

> Napadá mě nějaké řešení, ale abych mail neprotahoval, nejdřív bych se rád
> zeptal, jestli nevíte o nějakém standardizovaném, třeba přímo v Djangu,
> kterého jsem si nevšiml.
> 
> Řešíte to? Víte o dalších hazardech?

Řeším to většinou přes JS. Uživatel má krásný vizuální feedback přímo pod 
kurzorem,
že se něco děje (Název tlačítka se změní z “Registrovat” na “Probíhá 
registrace”, třeba)

Double post při refreshi se řeší redirectem, ale to není tento případ.


Tom

> 
> Děkuju, :-)
> 
> --
> :  Vladimir Macek  :  http://macek.sandbox.cz  :  +420 608 978 164
> :  UNIX && Dev || Training  :  Python, Django  :  PGP key 97330EBD
> 
> --
> --
> E-mailová skupina django-cs@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
> ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
> e-mail na adresu django-cs+unsubscr...@googlegroups.com.
> Chcete-li zobrazit tuto diskusi na webu, navštivte 
> https://groups.google.com/d/msgid/django-cs/3570829d-7333-48fa-3bad-8e3f73fe677e%40sandbox.cz.
> Další možnosti najdete na adrese https://groups.google.com/d/optout.

-- 
-- 
E-mailová skupina django-cs@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
--- 
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
e-mail na adresu django-cs+unsubscr...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/A5870241-6A58-4A46-8B68-5CEE6112023A%40gmail.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to