当前位置: 首页 > 面试题库 >

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

谭宜
2023-03-14
问题内容

我正在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:我们具有名称为“ id”的默认字段,该字段为自动递增。
2:您可以使用AutoField 字段定义自动递增 字段。

类Order(models.Model):
    auto_increment_id = models.AutoField(primary_key = True)
    #如果您不想使用django给模型提供的默认字段“ id”,则使用primary_key = True
+ ------------ + ------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------- +
| 桌子 创建表|
+ ------------ + ------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------- +
| core_order | 创建表`core_order`(
  `auto_increment_id` int(11)非空AUTO_INCREMENT,
  主键(`auto_increment_id`)
)ENGINE = InnoDB DEFAULT CHARSET = latin1 |
+ ------------ + ------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------- +
套装1行(0.01秒)

如果要使用django的默认ID作为增量字段。

类Order(models.Model):
    dd_date = models.DateTimeField(auto_now_add = True)

数据库设计

+ ------------- + ----------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- +
| 桌子 创建表|
+ ------------- + ----------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- +
| core_order | 创建表`core_order`(
  `id` int(11)NOT NULL AUTO_INCREMENT,
  `dd_date` datetime NOT NULL,
  主键(`id`)
)ENGINE = InnoDB DEFAULT CHARSET = latin1 |
+ ------------- + ----------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------- +


 类似资料:
  • 问题内容: 我希望能够以原子方式递增计数器,而我却找不到有关如何执行此操作的参考。 根据评论添加更多信息: 您正在使用GCD吗?不,我没有使用GCD。必须使用队列系统来增加数字似乎过大了。 请 您理解基本的线程安全?是的,否则我不会问原子增量的问题。 这个变量是局部变量吗?没有。 它是实例级别吗? 是的,它应该是单个实例的一部分。 我想做这样的事情: 问题答案: 来自低级并发API: OSAtom

  • 问题内容: 改善这个问题 我是android编码练习的新手 假设这是我的第一个ID,我希望使用共享的首选项将此值自动递增1并用作员工ID。如ABB20180002,ABB20180003,ABB20180004等。 问题答案: 您不能直接增加字母数字值。如果要这样做,您需要为其编写一些代码行 这是 activity_main.xml 这是 MainActivity.java 希望这会帮助你。

  • 问题内容: 如何在Django(Python)中像Google App Engine(Python)中的ListProperty属性一样创建ListField ?我的数据是这样的名单:3,4,5,6,7,8。 我必须定义什么属性,以及如何从中获取值? 问题答案: 使用你可以使用的类型来重新研究它。但这有一些假设,例如你不在列表中存储复杂类型的事实。出于这个原因,我曾经强制只将简单的内置类型作为成员

  • 问题内容: 我已经阅读了一些有关此的文章,但没有一篇涵盖这个问题。 我想不可能,但是我还是要问。 我有一个超过50.000个寄存器的表。这是一张旧表,其中进行了各种插入/删除操作。 也就是说,大约有300个寄存器存在多个“漏洞”。即:…,1340,1341,1660,1661,1662,… 问题是。有没有简单/容易的方法来使新插入物填充这些“孔”? 问题答案: 您需要此功能的原因是什么?您的数据库

  • 我的问题是: 以下是我的结果集: 我最终要寻找的是一种通过“DEName”递增地对ColumnNumber数据字段进行编号的方法。换句话说,对于每个DEName的每个ColumnName,我希望ColumnNumber从1开始,然后转到每个DEName有多少个唯一的ColumnName。有什么想法吗?