मैं उपयोगकर्ताओं को अपने रूपों को दोबारा सबमिट करने से रोकने के लिए एक रास्ता खोजने की कोशिश कर रहा हूं। मेरे पास जावास्क्रिप्ट है जो सबमिट बटन को अक्षम करता है, लेकिन अभी भी एक प्रासंगिक उपयोगकर्ता है जो डबल-सबमिट करने का तरीका ढूंढता है।क्या डुप्लिकेट फॉर्म सबमिशन को रोकने के लिए लाइब्रेरी django के लिए मौजूद है?
मेरे पास एक पुनः उपयोग करने योग्य लाइब्रेरी का एक दृष्टिकोण है जिसे मैं इससे बचाने के लिए बना सकता हूं।
मेरी आदर्श पुस्तकालय में, कोड ब्लॉक कुछ इस तरह दिखेगा:
duplicate_submission_locks
- submission_hash # के MD5:
try: with acquire_lock({'field1':'abc', 'field2':'def'}) as lock: response = #do some credit card processing lock.response = response except SubmissionWasDuplicate, e: response = e.response
ताला तालिका कुछ इस तरह दिखेगा सबमिट किए गए तर्क
- प्रतिक्रिया # मसालेदार डेटा
- created_at इस तालिका व्यापक के लिए इस्तेमाल किया #
- lock_expired # बूलियन वाचक अगर ताला
किसी को भी पता है कि अगर यह पहले से मौजूद है समाप्त हो गया है? ऐसा लिखना मुश्किल नहीं लगता है, इसलिए यदि यह अस्तित्व में नहीं है तो मैं इसे स्वयं लिख सकता हूं।
इस सवाल http पर एक नज़र डालें: // stackoverflow। कॉम/प्रश्न/320096/django-how-can-i-protect-against-concurrent-modification-of-data-base-प्रविष्टियों में ऑप्टिस्टिक लॉक –
के बारे में कुछ अच्छे विचार हैं आशावादी लॉक मुझे जो चाहिए, उसके करीब है बातें। 1) यह एक साइनअप फॉर्म पर है इसलिए अभी तक अपडेट करने के लिए मॉडल फ़ील्ड नहीं है। 2) यदि यह एक डबल-सबमिट है, तो मैं चाहता हूं कि दोनों सबमिशन सफल पृष्ठ या फिर से प्रयास करें जो उचित होगा। – Gattster