繁体   English   中英

如何检查用户是否在Django中成功创建

[英]How to check whether a user created successfully in Django

我尝试使用Django,并使用此代码创建了一个用户

from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth.models import User    

def register(request):
    user = User.objects.create_user('John', 'lennon@thebeatles.com', 'johnpassword')
    user.last_name = "James"
    user.is_active = True
    status = user.save()
    return HttpResponse(status)

我的问题是,如果无法创建用户,如何检查用户是否已成功创建,并显示错误消息。 当我运行此代码时,它将创建一个用户,但返回值None

谢谢

检查用户是否具有带有实际值的pk属性。 如果是这样,它将保存在数据库中。

如下面的用户knbk所述,简单的检查如下所示就足够了

if user.pk is not None: # do stuff

如果该用户已经存在, create_user将引发完整性错误。

def register(request):
    try:
        user = User.objects.create_user('John', 'lennon@thebeatles.com', 'johnpassword')
    except IntegrityError:
        # user already exists
        status = 'user already exists'
    else:
        user.last_name = "James"
        user.is_active = True
        user.save()
        status = 'new user was created'
    return HttpResponse(status)

这对我来说看起来更好:

def register(request):
    try:
        # user is active bu default
        user = User.objects.create_user('John', 'lennon@thebeatles.com', 'johnpassword', last_name='James')
    except IntegrityError:
        # user already exists
        status = 'user already exists'
    else:
        status = 'new user was created'
    return HttpResponse(status)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM