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.

Reply via email to