当使用Django ORM作为后端数据库操作模块时,create()函数提供了方便的功能能够快速创建并保存一个模型实例。下面将详细讲解create()函数的作用和使用方法,同时提供两个实例进行说明。
create()函数的作用是创建一个新的模型实例,并将其保存至数据库中。
create()函数是一个类方法,可以在模型类上直接调用,使用方式如下:
class ModelClass(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.IntegerField()
object = ModelClass.objects.create(field1='value1', field2=1)
create()函数将在数据库中为该模型类创建一条新的记录,并将指定的字段值存储在相应的列中。调用create()函数时,需要传递一个或多个参数,参数的值将赋予新创建的实例中的字段。这些参数应该按照与模型中定义的字段相同的顺序被传递,并且字段名可选的。
除创建实例的方法之外,create()函数还提供了一个额外的特性。create()函数可以在创建新实例的同时进行字段值验证,如果遇到验证错误,会抛出ValidationError
异常,阻止模型保存。
下面提供两个实例进行说明。
假设有如下的模型定义:
class Book(models.Model):
title = models.CharField(max_length=50)
author = models.CharField(max_length=30)
genre = models.CharField(max_length=50)
pub_date = models.DateField()
def __str__(self):
return self.title
现在想要创建一本新书的实例并将其保存至数据库中:
new_book = Book.objects.create(
title='Harry Potter and the Philosopher Stone',
author='J.K. Rowling',
genre='Fantasy',
pub_date=datetime.date(1997, 6, 26),
)
这段代码将会构建一个新的Book
对象并将其存储在数据库中,同时将title
、author
、genre
和pub_date
字段分别设置为'Harry Potter and the Philosopher Stone'
、'J.K. Rowling'
、'Fantasy'
和datetime.date(1997, 6, 26)
。
假设有如下的模型定义:
class User(models.Model):
name = models.CharField(max_length=50)
age = models.PositiveIntegerField()
def __str__(self):
return self.name
现在需要以用户提供的数据创建一个新的用户实例,并验证输入数据是否合法或有误:
from django.core.exceptions import ValidationError
try:
new_user = User.objects.create(
name='John Doe',
age=25,
)
except ValidationError as e:
print("Error: {}".format(str(e)))
这段代码尝试创建一个新的User
对象并将其存储在数据库中,而且将name
和age
分别设置为字符串'John Doe'
和25
。如果有不合法的内容,比如说age
输入-1
,那么调用create()
方法时将会抛出一个ValidationError
异常来提示该字段值无效。
本文链接:http://task.lmcjl.com/news/16133.html