primary_key – Django 内置字段验证
Django 模型中的内置字段验证是为所有 Django 字段预定义的默认验证。每个字段都带有来自 Django 验证器的内置验证。还可以添加更多内置字段验证,以在特定字段上应用或删除某些约束。 primary_key=True
将使该表(模型)的字段PRIMARY KEY 。如果您没有为模型中的任何字段指定 primary_key=True,Django 将自动添加一个 AutoField 来保存主键,因此您不需要除非您想覆盖默认的主键行为,否则在您的任何字段上设置 primary_key=True。有关更多信息,请参阅自动主键字段。
注意: primary_key=True
意味着null=False
和unique=True
。一个对象只允许有一个主键。
句法
field_name = models.Field(primary_key = True)
Django 内置字段验证primary_key=True
说明
使用示例说明 primary_key=True。考虑一个名为geeks
的项目,它有一个名为geeksforgeeks
的应用程序。
Refer to the following articles to check how to create a project and an app in Django.
- How to Create a Basic Project using MVT in Django?
- How to Create an App in Django ?
在极客应用的models.py
文件中输入以下代码。我们将使用 IntegerField 来试验 primary_key。
from django.db import models
from django.db.models import Model
# Create your models here.
class GeeksModel(Model):
geeks_field = models.IntegerField(primary_key = True)
在 Django 上运行 makemigrations 和 migrate 并渲染上述模型后,让我们尝试使用 Django shell 中的 None 创建一个实例。要启动 Django shell,请输入命令,
Python manage.py shell
现在让我们尝试使用None创建 GeeksModel 的实例。
# importing required model
from geeks.models import GeeksModel
# creating instance of GeeksModel
s = GeeksModel.objects.create(geeks_field = 12)
# saving current model instance
s.save()
让我们检查管理界面是否创建了模型实例。
因此,primary_key=True 将该字段修改为该表的 PRIMARY KEY。要了解有关主键的更多信息,请访问此处。
primary_key=True 的高级概念
主键字段是只读的。如果您更改现有对象的主键值并保存它,则会在旧对象旁边创建一个新对象。
更多内置字段验证
Field Options | Description |
---|---|
Null | If True, Django will store empty values as NULL in the database. Default is False. |
Blank | If True, the field is allowed to be blank. Default is False. |
db_column | The name of the database column to use for this field. If this isn’t given, Django will use the field’s name. |
Default | The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created. |
help_text | Extra “help” text to be displayed with the form widget. It’s useful for documentation even if your field isn’t used on a form. |
primary_key | If True, this field is the primary key for the model. |
editable | If False, the field will not be displayed in the admin or any other ModelForm. They are also skipped during model validation. Default is True. |
error_messages | The error_messages argument lets you override the default messages that the field will raise. Pass in a dictionary with keys matching the error messages you want to override. |
verbose_name | A human-readable name for the field. If the verbose name isn’t given, Django will automatically create it using the field’s attribute name, converting underscores to spaces. |
validators | A list of validators to run for this field. See the validators documentation for more information. |
Unique | If True, this field must be unique throughout the table. |
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。