Saq*_*Ali 3 django django-registration
我正在使用Django-Registration包让用户创建帐户,验证他们并登录我的webapp.
但是,帐户创建的表单/视图不会要求用户输入名字/姓氏(这些字段是模型BTW的一部分).它只询问他们的电子邮件地址,登录ID和密码(两次).我想要询问用户的名字/姓氏(这些字段可以是可选的......但它仍应该询问).我找不到要修改的表单和视图文件,以便它要求提供此信息.我修改了模板文件.但没有形式和视图修改是没用的.这是怎么做到的?
在您的forms.py中,扩展DjangoRegistration表单,如:
class MyExtendedForm(RegistrationForm):
first_name = forms.CharField(widget=forms.TextInput(label="first_name"))
last_name = forms.CharField(widget=forms.TextInput(label="last_name"))
Run Code Online (Sandbox Code Playgroud)
在urls.py,告诉django-registration使用这个扩展形式:
# using my registration form to override the default
(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend',
'form_class': MyExtendedForm}),
Run Code Online (Sandbox Code Playgroud)
定义user_created以保存额外信息:
def user_created(sender, user, request, **kwargs):
"""
Called via signals when user registers. Creates different profiles and
associations
"""
form = MyExtendedForm(request.Post)
# Update first and last name for user
user.first_name=form.data['first_name']
user.last_name=form.data['last_name']
user.save()
Run Code Online (Sandbox Code Playgroud)
然后,注册来自django-registration的信号,以便在处理任何注册后调用您的函数:
from registration.signals import user_registered
user_registered.connect(user_created)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |