Django注册还是Django认证?

Django注册还是Django认证?,django,django-registration,Django,Django Registration,我是Django的新手,正在尝试为新用户建立一个需要以下步骤的社交网站: 填写注册表格->填写一些个人资料表格->通过电子邮件验证帐户->使用 pip已经安装了Django 1.5.4 我的问题是:对于这个场景,我应该使用本地Django auth还是其他模块?您会推荐哪个选项?为什么?这实际上取决于您想要的定制级别 注册表单可能看起来有点像不同Django项目之间的重复任务,它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤 这是我用于注册的视图示例

我是Django的新手,正在尝试为新用户建立一个需要以下步骤的社交网站:

填写注册表格->填写一些个人资料表格->通过电子邮件验证帐户->使用

pip已经安装了Django 1.5.4


我的问题是:对于这个场景,我应该使用本地Django auth还是其他模块?您会推荐哪个选项?为什么?

这实际上取决于您想要的定制级别

注册表单可能看起来有点像不同Django项目之间的重复任务,它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤

这是我用于注册的视图示例:

def register(request):
    if request.method == 'POST':
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            data = register_form.data

            # create user
            user = User.objects.create_user(
                username=data.get('username'),
                email=data.get('email'),
                password=data.get('password'),
            )

            if user is not None:
                auth = authenticate(username=data.get('username'), password=data.get('password'))
                login(request, auth)

                messages.success(request, _('Your new user has been created.'))
                return redirect(reverse('home'))
            else:
                messages.error(request, _('Oops! Error.'))
    else:
        register_form = RegisterForm()

    return render(request, 'accounts/register.html')

这几乎适用于我所有的项目
RegisterForm具有所有的魔力。

它实际上取决于您想要的定制级别

注册表单可能看起来有点像不同Django项目之间的重复任务,它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤

这是我用于注册的视图示例:

def register(request):
    if request.method == 'POST':
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            data = register_form.data

            # create user
            user = User.objects.create_user(
                username=data.get('username'),
                email=data.get('email'),
                password=data.get('password'),
            )

            if user is not None:
                auth = authenticate(username=data.get('username'), password=data.get('password'))
                login(request, auth)

                messages.success(request, _('Your new user has been created.'))
                return redirect(reverse('home'))
            else:
                messages.error(request, _('Oops! Error.'))
    else:
        register_form = RegisterForm()

    return render(request, 'accounts/register.html')

这几乎适用于我所有的项目
RegisterPerform具有所有的魔力。

django allauth是一个相当完整的解决方案。即使您对社交登录和集成功能不感兴趣,也可以非常轻松地处理用户注册、配置文件、电子邮件验证等。

django allauth是一个相当完整的解决方案。即使您对社交登录和集成功能不感兴趣,也可以非常轻松地处理用户注册、配置文件、电子邮件验证等。

我更喜欢使用auth进行验证,主要是出于教育原因,但有点担心通过电子邮件管理注册验证。你是怎么做到的?有多种方法。您可以创建一个模型,该模型有一个OneToOne字段给用户,另一个字段包含验证密钥。在“我的答案”中的“注册”视图中,创建验证模型的新实例,并向用户发送电子邮件,其中包含要验证的链接。创建一个视图和一个URL来检查模型中的键,然后执行其余的操作。另一种方法是缓存您的密钥并避免使用模型/表。我更喜欢使用auth来实现这一点,主要是出于教育原因,但有点担心通过电子邮件管理注册验证。你是怎么做到的?有多种方法。您可以创建一个模型,该模型有一个OneToOne字段给用户,另一个字段包含验证密钥。在“我的答案”中的“注册”视图中,创建验证模型的新实例,并向用户发送电子邮件,其中包含要验证的链接。创建一个视图和一个URL来检查模型中的键,然后执行其余的操作。另一种方法是缓存密钥并避免模型/表。