On 18.9.2016 12:29, Tomáš Ehrlich wrote: >>> Jestli je problém, je uživatel double clickne na submit, tak řešit přes JS? >>> OnClick -> Disable? >> Ano, to bude první fáze řešení a určitě to zlepší UX, jak píšeš níže. Ale >> nejde na to spoléhat. > Spoléhat na to nejde, ale pokud to vyřeší 99,9% případů, tak bych to tak > nechal. Museli by > se sejít dvě události zároveň, aby to nefungovalo: > > 1) Javascript nepojede (stránka ještě není načtená nebo javascript vypnutý > globálně), > 2) Uživatel double clickne
Jj, vidím to stejně. Přesto je podle mě dobré chránit i backend. >>> ... >> Ano, řešitelné. Zatím uvažuju o middleware, který po každém commitu POSTu >> uloží do cache HttpResponse klíčovanou hashem request.POST dat + IP adresy >> + csrfcookie s timeoutem 2 sec. Na začátku POSTu by se do cache mrklo a >> kdyžtak response hned vrátí. > To mi právě vrtá hlavou. Pokud je to takový do očí bijící problém, proč ještě > není vyřešený? > Django žije víc jak 10 let, to už si někdo musel všimnou… Vidím i tohle stejně, že by v Djangu měla být pro to podpora. Proto jsem se na začátku ptal, jestli o ní někdo neví. Django mám prolezlé hodně a hledal jsem i před prvním postem... >> No to zatím jsem nevyřešil, proč druhý request skončí s IntegrityError a >> nikoli se reg. formem s chybou "Uživatel už existuje”. > Aha! Tak to je určitě podezřelé. Pamatuju si, že nám občas registrace taky > vracela > IntegrityError. Bylo to spojení s přihlašováním přes facebook a stávalo se to > náhodně a jen občas. Nenašli jsme příčinu :( Aha, chtěl jsem se mrknout, jestli ta paní nešla k nám přes FB, ale ne. Je to přímý signup. Teď jsem to zkusil v Chrome jako ona a v pohodě jsem problém zreplikoval. Máme Django 1.9 a uživatel po té dvojici requestů 499+500 v databázi JE včetně navázaného objektu EmailAddress (vyrábí django-allauth). Mám podezření, jestli to nebude souviset s transaction isolation level. Ale tomu moc nerozumím. Ateďbaboraď. :-) Tome, děkuju za dosavadní. V. -- -- 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/7924f702-4c80-aade-f99b-2dd14051effe%40sandbox.cz. Další možnosti najdete na adrese https://groups.google.com/d/optout.