如何使自动递增整数字段Django [英] How to make an auto increment integer field Django

查看:337
本文介绍了如何使自动递增整数字段Django的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题很简单,我正在订购购物车,我需要做一个自动递增的字段,当订单。但是我不知道如何使整数字段自动递增:S任何帮助。



order.py

  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)


解决方案

在Django中
1:将会有一个自动递增的名称为id的默认字段。

2:您可以将任何字段定义为自动增量字段使用 AutoField
字段。

 
class Order(models.Model):
auto_increment_id = models.AutoField(primary_key = True)
#你使用primary_key = True如果您不想使用django给您的模型的默认字段id



db design



 
+ ------------ + ------------------ -------------------------------------------------- -------------------------------------------------- ----------------------------------------- +
|表|创建表|
+ ------------ + -------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------------- +
| 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列(0.01秒)



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



 
class Order(models 。$)
dd_date = models.DateTimeField(auto_now_add = True)



db设计



 
+ ------------- + --------------------- -------------------------------------------------- -------------------------------------------------- ---------------------------------------- +
|表|创建表|
+ ------------- + ------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------ +
| core_order | CREATE TABLE`core_order`(
`id` int(11)NOT NULL AUTO_INCREMENT,
`dd_date` datetime NOT NULL,
PRIMARY KEY(`id`)
)ENGINE = InnoDB DEFAULT CHARSET = latin1 |
+ ------------- + ------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------ +


the question is simple, I am making an order for shopping cart and I need to make a field that auto increments when the order is made. But I don't know how to make the integer field auto increment :S any help.

order.py

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)

解决方案

In Django 1 : There will be a default field with name "id" which is auto increment .
2 : You can define any field as auto increment field using AutoField field.

class Order(models.Model):
    auto_increment_id = models.AutoField(primary_key=True)
    #you use 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):
    dd_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,
  `dd_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+

这篇关于如何使自动递增整数字段Django的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆