Django 仅使用电子邮件创建用户并设置为非活动状态

Posted

技术标签:

【中文标题】Django 仅使用电子邮件创建用户并设置为非活动状态【英文标题】:Django Create a user using only Email and set as inactive 【发布时间】:2018-02-18 21:00:29 【问题描述】:

在我的应用中,我有 3 种具有不同权限的用户。 HR、员工和候选人。

我希望能够创建一个用户员工,仅提供其电子邮件并将其设置为非活动状态当员工登录应用程序时,他设置了他的名字、姓氏和密码,并在应用程序上变得活跃

我从 django 开始,真的不知道该怎么做;

我使用文档开始了身份验证过程,然后到达:

views.py:

from django.shortcuts import render
from .forms import HRForm, CandidateForm, EmployeeForm
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import authenticate,login,logout
from django.contrib.auth.backends import ModelBackend
from .models import MyUser

def registerEmployee(request):
    registered  = False
    if request.method == "POST":
        Employee_form = EmployeeForm(data=request.POST)

        if Employee_form.is_valid():
            user = Employee_form.save()
            user.set_password(user.password)
            user.is_employee = True
            user.save()
            registered = True
        else:
            print("Error!")
    else:
        Employee_form = EmployeeForm()
    return render(request,'Employee_registration_form.html',
                            'Employee_form':Employee_form,
                             'registered':registered)

你能帮我或给我指导一下吗? 谢谢你;)

【问题讨论】:

可以看这个docs.djangoproject.com/en/1.11/topics/auth/customizing 【参考方案1】:

要激活/停用用户,您可以使用:

user.is_active = False/True

为了创建用户,我推荐以下文章:

https://medium.com/@ramykhuffash/django-authentication-with-just-an-email-and-password-no-username-required-33e47976b517

【讨论】:

以上是关于Django 仅使用电子邮件创建用户并设置为非活动状态的主要内容,如果未能解决你的问题,请参考以下文章

如何使某个模板仅对 Django 中已确认的用户可见?

Django 1.7 - makemigrations 为非托管模型创建迁移

如果用户状态为非活动状态,则阻止用户登录

在 Django 中发送批量电子邮件

仅使用 CSS 设置“调用活动”动画

django 中的 ModelForms 是不是仅用于发布?