내 뷰 함수에서 다른 뷰를 호출하고 데이터를 전달하고 싶습니다.
return redirect('some-view-name', backend, form.cleaned_data)
, 여기서 백엔드는 registration.backends 객체이고 form.cleaned_data는 양식 데이터의 dict입니다 (하지만 둘 다 * args 또는 ** kwargs로 전송되어야 Don't mix *args and **kwargs in call to reverse()!
오류 발생 을 방지 할 수 있습니다 ). 내가 문서에서 찾은 것에서 :
def my_view(request):
...
return redirect('some-view-name', foo='bar')
'some-view-name'인수를 제공해야하는 것 같지만보기 기능의 이름입니까, 아니면 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)이 어떻게 생겼는지? 백엔드와 clean_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-registration에서 다음과 같은 것을 보았습니다.
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):