मेरे पास एक django-पंजीकरण है और काम कर रहा है। मैं इसमें दो अतिरिक्त विशेषताओं को जोड़ना चाहता हूं और लॉग-इन प्रक्रिया के आंतरिक-कार्य को समझने में कठिनाई हो रही है।ऑटो लॉग-इन और ईमेल फिर से भेजें
1) जब कोई उपयोगकर्ता सक्रियण ईमेल पर क्लिक करता है, तो यह खाता सक्रिय करता है लेकिन उपयोगकर्ता को लॉग इन नहीं करता है, मैं इसे सक्रियण लिंक पर क्लिक करके कैसे सक्रिय कर सकता हूं और खाता स्वचालित रूप से उपयोगकर्ता में लॉग इन करता है? यह वर्तमान में मेरे activate
समारोह कैसा दिखता है -
def activate(self, request, activation_key):
activated = RegistrationProfile.objects.activate_user(activation_key)
if activated:
signals.user_activated.send(sender=self.__class__,
user=activated,
request=request)
login (request, activated) ### if I try this line, it throws an error 'User'
### object has no attribute 'backend
return activated
अद्यतन: मैं एक हैक जोड़ने के लिए इस काम के प्राप्त करने के लिए, सत्र का उपयोग कर पा रहा था। निश्चित रूप से यह आदर्श समाधान नहीं है, लेकिन यहाँ मैं क्या है -
def register(self, request, **kwargs):
...
new_user.save()
request.session['username'] = username
request.session['password'] = password
return new_user
def activate(self, request, activation_key):
username = request.session['username']
password = request.session['password']
activated = RegistrationProfile.objects.activate_user(activation_key)
if activated:
signals.user_activated.send(sender=self.__class__,
user=activated,
request=request)
user = authenticate(username=username, password=password)
login(request, user)
return activated
2) मैं एक उपयोगकर्ता के लिए एक विकल्प जोड़ने के लिए एक और सक्रियण ईमेल प्राप्त करने के लिए एक बटन क्लिक करने के लिए सक्षम होने के लिए चाहते हैं (वह विफल पहले प्राप्त करने के लिए)। ऐसा लगता है निम्न जहां सक्रियण ईमेल पंजीकरण कराने पर भेज दिया जाता है है -
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
मैं उपयोगकर्ता खाते को देखते हुए एक और सक्रियण ईमेल कैसे भेजना होगा पहले से ही बनाया गया है?
सक्रियण लिंक प्रक्रिया को पुनः भेजने के लिए send_activation_email काम भेजेगा? – Ashiya