我正在为购物车制作一个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自动递增呢?

推荐答案

在Django

1 : Django model class has default field with name id which is auto increment Field.
2 : You can define your own auto increment field using AutoField field.

class Order(models.Model):
    auto_increment_id = models.AutoField(primary_key=True)
    # primary_key = True if you do not want to use default field "id" given by django to your model

db design

+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                  |
+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| core_order | CREATE TABLE `core_order` (
  `auto_increment_id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`auto_increment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

If you want to use django's default id as increment field .

class Order(models.Model):
    add_date = models.DateTimeField(auto_now_add=True)

db design

+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                    |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| core_order | CREATE TABLE `core_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `add_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+

Django相关问答推荐

Django BooleanField如何使用RadioSelect?

我的Django终结点不访问HAS_OBJECT_PERMISSION方法

没有与给定查询匹配的监视列表

通过 B 的外键列表访问模型 B 的行

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

按下按钮刷新在html文件中显示的变量

Django: 无法将我的 comments 关联到特定产品

如何在 Django REST Framework API 响应中使用多标签过滤器?

如果一个应用程序有多个具有相同字段的模型,那么保持 DRY 的最佳实践是什么?

Django-Registration:邮箱作为用户名

如何在 django tests.py 中创建管理员用户

如何在不使用 sudo 的情况下安装 virtualenv?

django excel xlwt

Django 删除未使用的媒体文件

超过 1 个外键

get_or_create() 线程安全吗

django 在 unittest 测试中设置环境变量

Django将整数模型字段的范围设置为约束

Django: Force强制 Select 相关?

如何从 django 请求中获取完整的 url