Python 成功注册前重定向到自定义表单页面
在Facebook注册期间,我需要存储用户手机号码(必填字段)。我怎样才能做到这一点 我试图通过信号实现这一点,但我无法将页面重定向到所需的模板。虽然不推荐Python 成功注册前重定向到自定义表单页面,python,django,facebook,authentication,django-allauth,Python,Django,Facebook,Authentication,Django Allauth,在Facebook注册期间,我需要存储用户手机号码(必填字段)。我怎样才能做到这一点 我试图通过信号实现这一点,但我无法将页面重定向到所需的模板。虽然不推荐 @receiver(user_signed_up) def user_signed_up_(request, user, sociallogin=None, **kwargs): ''' When a social account is created successfully and this signal is rec
@receiver(user_signed_up)
def user_signed_up_(request, user, sociallogin=None, **kwargs):
'''
When a social account is created successfully and this signal is received,
django-allauth passes in the sociallogin param, giving access to metadata on the remote account, e.g.:
'''
if sociallogin:
if sociallogin.account.provider == 'facebook':
user.first_name = sociallogin.account.extra_data['first_name']
user.last_name = sociallogin.account.extra_data['last_name']
user.username = sociallogin.account.extra_data['username']
user.email = sociallogin.account.extra_data['email']
print "%s => %s => %s" % (user.first_name, user.last_name, user.email)
form = FacebookForm(
{
"first_name": request.user.first_name,
"last_name": request.user.last_name,
"username": request.user.username,
"email": request.user.email,
"mobile_number": " "
})
user.save()
#don't return value (below line don't work
return render(request, "authentication/signup_form.html", {"form": form})
使用AccountAdapter,用户可以通过更改地址栏上的url绕过表单
class AccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
# if request.user.last_login == request.user.date_joined:
form = FacebookForm({"first_name": request.user.first_name,
"last_name": request.user.last_name,
"username": request.user.username,
"email": request.user.email})
print form
return '/signup/'
forms.py
from django import forms
class FacebookForm(forms.Form):
first_name = forms.CharField(30, required=True)
last_name = forms.CharField(30, required=True)
username = forms.CharField(30, required=True)
email = forms.EmailField(required=True)
mobile_number = forms.CharField(15, required=True)
url.py
...
url(r'^signup/', 'authentication.views.index', name="signup"),
...
身份验证/注册\u form.html
{% block main_content %}
<h1>After Facebook Login</h1>
{% if form %}
<form method="post" action=".">
{% csrf_token %}
{{ form.as_p }}
<input value="Submit" type="submit">
</form>
{% endif %}
{% endblock %}
{%block main_content%}
登录Facebook后
{%if形式%}
{%csrf_令牌%}
{{form.as_p}}
{%endif%}
{%endblock%}
我需要的与eatwith.com类似