मेरे विचार समारोह में साथ मैं यह करने के लिए डेटा एक और दृश्य कॉल और पास करना चाहते हैं:Django वापसी रिडायरेक्ट() पैरामीटर
return redirect('some-view-name', backend, form.cleaned_data)
, जहां बैकएंड registration.backends की है वस्तु, और form.cleaned_data एक dict है फॉर्म डेटा (लेकिन Don't mix *args and **kwargs in call to reverse()!
त्रुटि को बढ़ाने से रोकने के लिए दोनों को या तो * args या ** kwargs के रूप में भेजा जाना चाहिए)। से मैं क्या डॉक्स में मिल गया है:
def my_view(request):
...
return redirect('some-view-name', foo='bar')
ऐसा लगता है कि मैं उपलब्ध कराने के लिए 'कुछ-दृश्य-नाम' तर्क की जरूरत है, लेकिन यह सिर्फ दृश्य समारोह का नाम, या यूआरएल का नाम है ?
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',(), {})
ठीक है तो अब, मैं सीधे मेरे विचार फ़ंक्शन को कॉल करें या मैं इसके लिए एक यूआरएल प्रदान करने की आवश्यकता कर सकते हैं: तो मैं यह जिस तरह से यह Django पंजीकरण में किया जाता है, जहां के समान बनाने के लिए चाहते हैं? और और भी महत्वपूर्ण बात यह है कि कैसे मेरी funciotn कॉल (और यदि आवश्यक हो तो एक यूआरएल) दिखना चाहिए? दोनों बैकएंड, और cleaned_data को बाद में उपयोग के लिए इस दृश्य के माध्यम से पारित किया गया है। इस रूप में
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):
और यदि मैं इस दृश्य में cleaned_data पर काम नहीं करूंगा, लेकिन इसे बाद में उपयोग के लिए पास कर दूं? मेरे पास cleaned_data dict में कई फ़ील्ड हैं इसलिए मैं उन्हें स्ट्रिंग स्ट्रिंग के रूप में पास करने से बचना चाहता हूं :) – muntu
मुझे यह टिप्पणी समझ में नहीं आ रही है। यदि आवश्यक हो तो अपने प्रश्न को अपडेट करने के लिए कृपया अधिक विस्तार से समझाएं। –
यह दूसरा दृश्य केवल इस भेजे गए डेटा को और उपयोग के लिए संग्रहीत करेगा। लेकिन क्या आपको यकीन है कि मुझे इसके लिए यूआरएल प्रदान करने की ज़रूरत है? दस्तावेज़ों से ऐसा लगता है कि मैं सिर्फ दृश्य को सीधे कॉल कर रहा हूं। इसके अलावा मैं उम्मीद कर रहा था कि रीडायरेक्ट() में बैकएंड और डेटा के साथ एक डिक्शनरी भेजना (जैसा कि यह डीजेंगो-पंजीकरण में किया जाता है) और फिर यूआरएल में (इस फंक्शन को रजिस्टर फ़ंक्शन में), लेकिन जो मुझे लगता है उससे असंभव है? – muntu