2010-02-16 6 views
28

मैं Django में कैप्चा का उपयोग कर उपयोगकर्ता पंजीकरण को कार्यान्वित करना चाहता हूं। ऐप का वर्कफ़्लो एक अच्छा है, लेकिन इसमें कैप्चा नहीं है।कैप्चा के साथ उपयोग में आसान django कैप्चा या पंजीकरण ऐप?

आप इसके साथ उपयोग करने के लिए किस कैप्चा की सिफारिश करेंगे? क्या पंजीकरण के कुछ अन्य प्रकार हैं + कैप्चा या विषय पर उपयोगी लिंक?

यह Django-1.1 के साथ काम करना चाहिए और स्थापित करने के लिए बहुत कठिन नहीं होना चाहिए।

उत्तर

21

django-पंजीकरण काफी विस्तार योग्य है। इसका विस्तार करने का एक तरीका कस्टम पंजीकरण फॉर्म प्रदान करना है। मैं reCaptcha का उपयोग करने की अनुशंसा करता हूं, उदा। here (archived) से विजेट और फॉर्म फ़ील्ड के साथ। तो यह एक कस्टम प्रपत्र वर्ग और पंजीकरण बैकएंड (जो सरल है की तुलना में यह लग रहा है) लेखन के रूप में सरल है:

from registration.backends.default import DefaultBackend 
from registration.forms import RegistrationForm 

class RecaptchaRegistrationForm(RegistrationForm) 
    recaptcha = ReCaptchaField(label="I'm a human") 

class RecaptchaRegistrationBackend(DefaultBackend): 
    def get_form_class(self, request): 
     return RecaptchaRegistrationForm 

अंतिम चरण अपने बैकएंड उपयोग करने के लिए Django पंजीकरण बताने के लिए है। उस चरण को docs में वर्णित किया गया है (मुझे दस्तावेज़ों का HTML संस्करण नहीं मिला, क्षमा करें)

+0

धन्यवाद! वह उपयोगी था! –

+0

विजेट और फॉर्म फ़ील्ड का लिंक 502 – sacabuche

+0

देता है सौभाग्य से, archive.org की एक प्रति है: http://web.archive.org/web/20090606022756/http://lobstertech.com/2008/aug/27/ integrating_django_recaptcha/ –

16

मेरे जैसे थ्रेड के लिए देर से पहुंचने वाले लोगों के लिए, अब वहां समाधानों का एक गुच्छा है, जो बहुत आसान हैं स्थापित करने के लिए:

मैंने सफलतापूर्वक Django Mollom और Django सरल कैप्चा को सेटअप किया है, और सबसे कठिन हिस्सा मेरे मैक पर पीआईएल स्थापित करने के आसपास याक शेविंग था। कोड को कार्यान्वित करना उतना ही सरल था जितना कि प्रत्येक के लिए दस्तावेज़ सुझाएंगे।

17

मुझे अभी यह समस्या है, लेकिन समाधान मृत सरल है।

मैं django-registration का उपयोग कर रहा हूं, और मैं उपयोगकर्ता पंजीकरण के लिए एक reCAPTCHA फ़ील्ड चाहता हूं। सिर्फ 1 मिनट में:

  1. डाउनलोड django-recaptcha (pip install django-recaptcha)

  2. अपनी परियोजना पर इसे स्थापित। यही है, अपनी परियोजना में "कैप्चा" फ़ोल्डर की प्रतिलिपि बनाएँ, "कैप्चा" को INSTALLED_APPS पर जोड़ें और सेटिंग में RECAPTCHA_PUBLIC_KEY और RECAPTCHA_PRIVATE_KEY कुंजी जोड़ें।py भी (स्थापना के निर्देश में वर्णित है)

  3. खुला registration/forms.py और अंदर class RegistrationForm(forms.Form):

    captcha = ReCaptchaField()

    इस क्षेत्र को जोड़ने आप भी आयात करना होगा:

    from captcha.fields import ReCaptchaField

और यही वह है। एक मिनट से कम।

+3

कोई मजाक नहीं - आपके निर्देशों का पालन किया और इसमें एक मिनट से भी कम समय लगा .. धन्यवाद! – PhilBot

+1

लेकिन क्या होगा यदि पंजीकरण पैकेज आपकी परियोजना में कॉपी नहीं किया गया है और इसके बजाय पीआईपी इंस्टॉल के माध्यम से स्थापित किया गया है ...? – Timbadu

संबंधित मुद्दे