![](/img/trans.png)
[英]Django how to check whether a model is being created created or update
[英]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.