在 Django 中,当一个字段被设置为 primary_key,它将自动设置为唯一(unique)。这意味着在数据库中,该字段的值不能重复。

如果您希望允许具有相同 primary_key 的多个记录,您需要将 primary_key 字段更改为整数类型(例如 AutoField),而不是字符类型(如 CharField)。

例如,如果您有以下模型:

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    primary_key = models.CharField(max_length=100, primary_key=True)

您需要将其更改为:

class MyModel(models.Model):
    name = models.CharField(max_length=100)
    primary_key = models.AutoField(primary_key=True)

这样,您可以为具有相同 primary_key 的多个记录创建对象。请注意,您需要确保在数据库中为该字段分配唯一的值。如果您使用的是 PostgreSQL,可以通过设置 unique 约束来实现这一点:

CREATE UNIQUE INDEX my_model_primary_key_unique ON myapp_mymodel (primary_key);

如果您使用的是 MySQL,可以通过设置 UNIQUE 约束来实现这一点:

ALTER TABLE myapp_mymodel ADD UNIQUE (primary_key);
声明:如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。None#python87.com