【问题标题】:How to disable automatic id creation in Django?如何在 Django 中禁用自动创建 ID?
【发布时间】:2016-01-16 06:33:28
【问题描述】:

我想在 Django 模型中禁用自动创建 ID。有可能这样做吗?怎么样?

【问题讨论】:

标签: postgresql python-2.7 django-models automatic-properties


【解决方案1】:

正如回复中提到的,您需要在非 AutoField 上声明主键。例如:

from django.db import models

class Person(models.Model):
    username = CharField(primary_key=True, max_length=100)
    first_name = CharField(null=True, blank=True, max_length=100)

请注意,将字段设置为primary_key=True 会自动使其唯一且不为空。祝你好运!

【讨论】:

  • 是的,这是可能的。但是,如果我只想存储用户对某个项目的喜欢怎么办?我不需要那些东西的 id。
  • 是的,你可能有一些用例,在你的数据库表中你不会使用第三种规范化形式,但是如果你需要这些表在 Django 中作为模型公开,你必须这样做。您几乎没有/没有损失,这些字段可以自动管理,您几乎不会争论已用空间...
  • 除非您在数据库中查看它,否则它甚至不会真正暴露给您作为编码人员,并且对于很多可靠性而言,开销很小。多年来,在数据库中拥有一个有保证的唯一键为我节省了很多次。
猜你喜欢
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2020-10-16
相关资源
最近更新 更多