आप दृश्य ईमेल (registration.views.activate) के माध्यम से एक खाते के सक्रियण के लिए जिम्मेदार आपको लगता है कि यह एक success_url पैरामीटर है जो स्वीकार करता देखेंगे को देखें, तो "किसी URL पैटर्न के नाम पर सफल सक्रियण पर पर रीडायरेक्ट करने। "
तो आपको बस उस यूआरएल को ओवरराइट करना होगा जो उस दृश्य को कॉल करता है और वह पृष्ठ प्रदान करता है जिसे आप रीडायरेक्ट करना चाहते हैं।
अपनी खुद की
urls.py में
तो: क्या आप लपेट सकता है
from registration.views import activate
urlpatterns = patterns('',
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate',
# You could use reverse() here instead of a URL to be DRY'er
success_url = "http://..."
),
वैकल्पिक रूप से Django-पंजीकरण अपने स्वयं के दृश्य में दृश्य को सक्रिय करने और पर रीडायरेक्ट करने गए एक GET पैरामीटर स्वीकार करते हैं:
from registration.view import activate
def custom_activate(request, backend,
template_name='registration/activate.html',
success_url=None, extra_context=None, **kwargs):
success_url = request.GET.get('next', None)
return activate(request, template_name=template_name, success_url=success_url, extra_context=None, **kwargs)
अब, आपके टेम्पलेट में पंजीकरण/activation_email.html आप लिंक पर पुनर्निर्देशन स्थान जोड़ सकते हैं:
{% url 'registration.view.activate' activation_key as a_url %}
Thanks! ....
{% autoescape off %}
<a href="http://{{ site.domain }}{{ a_url }}?next='http://somepage_or_url'">
http://{{ site.domain }}{{ url_registration_activate }}/
</a>
{% endautoescape %}
Thanks!
संपादित
ठीक है, इतनी मेहनत से कोडित रीडायरेक्ट के साथ ऊपर से संबंधित है। मेरा अनुमान है कि इस प्रवाह में आप चाहते है:
- उपयोगकर्ता एक पेज
- उपयोगकर्ता उस पृष्ठ पर अप कि प्रवेश करें/पंजीकरण पृष्ठ पर रीडायरेक्ट कर दिया जाता
- उपयोगकर्ता चिन्ह और एक ई-मेल भेजा जाता है के लिए जाने की कोशिश करता है
- उपयोगकर्ता ईमेल को सक्रिय करता है और
यह और अधिक कठिन पेज के रूप में वे कदम एक सभी तरह चार और के रूप में कदम को पास करने की जरूरत में देखने की कोशिश कर रहे थे देखने के लिए मूल पृष्ठ वे करने की कोशिश की पर पुनः निर्देशित हो जाता है हम जानते हैं, HTTP है राज्यविहीन।
पहला सुझाव जो दिमाग में आता है, जब आप पंजीकरण करते हैं तो एक सत्र चर में रीडायरेक्ट को सहेजना है और फिर सक्रिय करते समय इसे पुनर्प्राप्त करना है।ऐसा करने के लिए हम Django-पंजीकरण default backend (जो सिर्फ तरीकों कि पंजीकरण की प्रक्रिया की कार्यक्षमता रूपरेखा और विचारों से कहा जाता है के साथ एक वर्ग है), विशेष रूप से रजिस्टर और post_activation_redirect तरीकों के ऊपर लिख सकते हैं:
custom_backend.py
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'custombackend.RedirectBackend'},
name='registration_activate'),
url(r'^register/$',
register,
{'backend': 'custombackend.RedirectBackend'},
name='registration_register'),
आप क के बारे में बात कर रहे हैं:
और यह सुनिश्चित करें Django पंजीकरण वास्तव में इस बैकएंड का उपयोग करता है बनाने के लिए, हम यह हमारे urls.py के माध्यम से विचारों को प्रदान करते हैं क्या आप साइनअप करते हैं, या जब आप ईमेल के माध्यम से सक्रिय करते हैं? –
साइन अप करने के बाद, आप ईमेल द्वारा सक्रिय करते हैं, और फिर जब आप सक्रियण पूरा करते हैं तो मुझे उम्मीद है कि आप उस पृष्ठ पर रीडायरेक्ट हो जाएंगे जिसे आप मूल रूप से देखने का प्रयास कर रहे थे। –