这是在 Django 中创建主键的正确方法吗?
Is this the correct way of making primary keys in django?
class profiles(models.model):
customer_ID = models.IntegerField().primary_key
这是在 django 中创建主键的正确方法吗??
主键的正确语法是-:
class profiles(models.model):
customer_ID = models.IntegerField(primary_key=True)
Is this the correct way of making a primary key in django??
否。您使用 AutoField
[Django-doc] 作为主键,因为那时值由数据库分派,所以:
class profiles(models.model):
customer_ID = models.<strong>AutoField(primary_key=True, editable=False)</strong>
但您不必指定主键:如果您自己不指定主键,Django 会自动将名称为 id
的主键添加到模型中。
不,这不是在 Django 中创建主键的正确方法,实际上您不必为模型指定主键,因为 Django 会自动添加一个字段来保存主键你.
在您的 settings.py 文件中,您会找到一行:
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
默认情况下会在您的所有模型中自动创建一个 'id' 字段。 BigAutoField 是一个 64 位整数,根据可用 ID 从 1 到 9223372036854775807 自动递增。
class Profile(models.Model):
customer_username = models.CharField(max_length=100)
customer_email = models.EmailField()
Profile 模型将具有三个字段:id、customer_username、customer_email
但是,如果您想覆盖主键,假设使用 UUID 而不是常规 ID,您可以按如下方式覆盖它:
import uuid
class Profile(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4,editable=False)
customer_username = models.CharField(max_length=100)
customer_email = models.EmailField()
更多细节请参考django文档:https://docs.djangoproject.com/en/4.0/ref/models/fields/#primary-key
class profiles(models.model):
customer_ID = models.IntegerField().primary_key
这是在 django 中创建主键的正确方法吗??
主键的正确语法是-:
class profiles(models.model):
customer_ID = models.IntegerField(primary_key=True)
Is this the correct way of making a primary key in django??
否。您使用 AutoField
[Django-doc] 作为主键,因为那时值由数据库分派,所以:
class profiles(models.model):
customer_ID = models.<strong>AutoField(primary_key=True, editable=False)</strong>
但您不必指定主键:如果您自己不指定主键,Django 会自动将名称为 id
的主键添加到模型中。
不,这不是在 Django 中创建主键的正确方法,实际上您不必为模型指定主键,因为 Django 会自动添加一个字段来保存主键你.
在您的 settings.py 文件中,您会找到一行:
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
默认情况下会在您的所有模型中自动创建一个 'id' 字段。 BigAutoField 是一个 64 位整数,根据可用 ID 从 1 到 9223372036854775807 自动递增。
class Profile(models.Model):
customer_username = models.CharField(max_length=100)
customer_email = models.EmailField()
Profile 模型将具有三个字段:id、customer_username、customer_email
但是,如果您想覆盖主键,假设使用 UUID 而不是常规 ID,您可以按如下方式覆盖它:
import uuid
class Profile(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4,editable=False)
customer_username = models.CharField(max_length=100)
customer_email = models.EmailField()
更多细节请参考django文档:https://docs.djangoproject.com/en/4.0/ref/models/fields/#primary-key