gpt4 book ai didi

Django-registration:如何使帐户创建询问名字/姓氏

转载 作者:行者123 更新时间:2023-12-02 05:03:28 26 4
gpt4 key购买 nike

我正在使用 Django-Registration 包让用户创建帐户、对其进行身份验证并登录到我的 web 应用程序。

但是,用于创建帐户的表单/ View 不会要求用户提供名字/姓氏(这些字段是模型的一部分)。它只要求他们的电子邮件地址、登录 ID 和密码(两次)。我希望它询问用户的名字/姓氏(这些字段可以是可选的......但它仍然应该询问)。我找不到要修改的表单和 View 文件,以便它要求提供此信息。我已经修改了模板文件。但如果没有表单和 View 的修改,这是没有用的。这是如何完成的?

最佳答案

在 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"))

urls.py 中,告诉 django-registration 使用此扩展形式:

# using my registration form to override the default
(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend',
'form_class': MyExtendedForm}),

定义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()

然后,注册来自 django-registration 的信号,以便在处理任何注册后调用您的函数:

from registration.signals import user_registered
user_registered.connect(user_created)

关于Django-registration:如何使帐户创建询问名字/姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com