如何在 Django 中创建一个自动递增整数字段?

新手上路,请多包涵

我正在为购物车制作一个 Order 模型,我需要制作一个在下订单时自动递增的字段:

 class Order(models.Model):
    cart = models.ForeignKey(Cart)
    add_date = models.DateTimeField(auto_now_add=True)
    order_number = models.IntegerField()
    enable = models.BooleanField(default=True)

如何使 IntegerField 自动递增?

原文由 Daniel Sibaja 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

在姜戈

1:Django 模型类具有名称为 id 的默认字段,这是自动递增字段。

2:您可以使用 AutoField 字段定义自己的自动递增字段。

类顺序(模型。模型):
    auto_increment_id = models.AutoField(primary_key=True)
    # primary_key = True 如果你不想使用 django 给你的模型的默认字段“id”

数据库设计

+------------+------------------------------------ ---------------------------------------------- ---------------------------------------------- ----------------------+
|表 |创建表 |
+------------+------------------------------------ ---------------------------------------------- ---------------------------------------------- ----------------------+
|核心订单 |创建表`core_order`(
  `auto_increment_id` int(11) NOT NULL AUTO_INCREMENT,
  主键(`auto_increment_id`)
) ENGINE=InnoDB 默认字符集=latin1 |
+------------+------------------------------------ ---------------------------------------------- ---------------------------------------------- ----------------------+
一组中的 1 行(0.01 秒)

如果你想使用 django 的默认 id 作为增量字段。

类顺序(模型。模型):
    add_date = models.DateTimeField(auto_now_add=True)

数据库设计

+------------+-------------------------------- ---------------------------------------------- ---------------------------------------------- --------------------------+
|表 |创建表 |
+------------+-------------------------------- ---------------------------------------------- ---------------------------------------------- --------------------------+
|核心订单 |创建表`core_order`(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `add_date` 日期时间不为空,
  主键(`id`)
) ENGINE=InnoDB 默认字符集=latin1 |
+------------+-------------------------------- ---------------------------------------------- ---------------------------------------------- --------------------------+

原文由 Prashant Gaur 发布,翻译遵循 CC BY-SA 4.0 许可协议

在每个模型的 django 中,您将获得默认情况下自动增加的 id 字段。但是如果你手动想要使用自动增量。您只需要在模型中指定 AutoField

 class Author(models.Model):
    author_id = models.AutoField(primary_key=True)

您可以在 Django Documentation for AutoField 中阅读更多关于 django 中的自动字段的信息

原文由 Chitrank Dixit 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题