मेरे दृश्य फ़ंक्शन में मैं एक और दृश्य कॉल करना चाहता हूं और इसके लिए डेटा पास करना चाहता हूं:
return redirect('some-view-name', backend, form.cleaned_data)
, जहां बैकएड Registration.backends ऑब्जेक्ट का है, और form.cleaned_data फॉर्म डेटा का एक तानाशाही है (लेकिन दोनों को Don't mix *args and **kwargs in call to reverse()!
त्रुटि बढ़ाने से रोकने के लिए * args या ** kwargs के रूप में भेजा जाना चाहिए )। मैंने डॉक्स में जो पाया है, उससे:
def my_view(request):
...
return redirect('some-view-name', foo='bar')
ऐसा लगता है कि मुझे 'कुछ-दृश्य-नाम' तर्क प्रदान करने की आवश्यकता है, लेकिन क्या यह केवल दृश्य फ़ंक्शन का नाम है, या url का नाम है? इसलिए मैं इसे django-registration में उसी तरह बनाना चाहूंगा, जैसे:
to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)
def post_registration_redirect(self, request, user):
return ('registration_complete', (), {})
ठीक है अब, क्या मैं सीधे अपने दृश्य फ़ंक्शन को कॉल कर सकता हूं या क्या मुझे इसके लिए एक url प्रदान करने की आवश्यकता है? और क्या अधिक महत्वपूर्ण है, कैसे मेरे funciotn कॉल (और एक यूआरएल अगर जरूरत है) की तरह दिखना चाहिए? बैकएंड और क्लीनड_डाटा दोनों को बाद में उपयोग के लिए इस दृश्य से गुजारा जाता है। मैंने यह कोशिश की है, लेकिन यह अनुचित है:
url(r'^link/$', some-view-name)
def some-view-name(request, *args):
साथ में यह भी :
return redirect('some_url', backend=backend, dataform.cleaned_data)
url(r'^link/$', some-view-name)
def some-view-name(request, backend, data):
अभी भी NoReverseMatch। लेकिन django- पंजीकरण में, मैंने कुछ इस तरह से देखा है:
url(r'^register/$',register,{'backend': 'registration.backends.default.DefaultBackend'}, name='registration_register'),
def register(request, backend, success_url=None, form_class=None,
disallowed_url='registration_disallowed',
template_name='user/login_logout_register/registration_form.html',
extra_context=None):