欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于django 的orm中非主鍵自增的實現(xiàn)方式

 更新時間:2020年05月18日 09:28:54   作者:金子的日常  
這篇文章主要介紹了基于django 的orm中非主鍵自增的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我們知道django的orm想實現(xiàn)自增,可以直接使用AutoField字段既可以實現(xiàn),但是這種情況必須要求此字段是主鍵,但是我們知道主鍵只能是一個。

如果我已經(jīng)有了一個主鍵,但是又需要另外一個字段為唯一自增字段,這該如何實現(xiàn)呢?

本人的解決辦法如下,供大家參考,也歡迎大家提供更多的實現(xiàn)方式,互相學習。

class ProductSpu(models.Model):
  """
  商品表
  """
  _database = 'payment'

  id = models.UUIDField(primary_key=True, default=uuid.uuid4, db_column='c_id')
  product_no = models.IntegerField('商品號', blank=True, auto_created=True, db_column='c_product_no')
  name = models.CharField(verbose_name='商品名稱', max_length=100, db_column='c_name')

如上,product_no字段是我要實現(xiàn)的自增字段,

(1)首先設置此字段為IntegerField類型,并設置屬性值auto_created=True;

(2)生成數(shù)據(jù)庫的sql語句設置如下:

CREATE TABLE `ehr-payment`.`t_product_spu` (
 `c_id` char(32) NOT NULL,
 `c_product_no` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品編碼',
 `c_name` varchar(100) NOT NULL COMMENT '商品名稱',
 PRIMARY KEY (`c_id`),
 UNIQUE KEY `c_product_no` (`c_product_no`)
) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8 COMMENT='商品表';

經(jīng)過如上兩點配合設置,新增一條數(shù)據(jù)是會自動填充自增字段product_no,其中通過sql配置 AUTO_INCREMENT=100001,實現(xiàn)自增字段開始的值。如,此例是從100001開始自增。

補充知識:django關(guān)于自增id的問題

在django中,如果創(chuàng)建模型。不指定id。django會自動自定一個id

class Student(models.Model):
  name = models.CharField(max_length=16)
  sex = models.CharField(max_length=4)

像這種情況。django會自動添加一個自增id

在數(shù)據(jù)庫的表結(jié)構(gòu)為

id name sex

相當于

class Student(models.Model):
  id = models.AutoField(primary_key=True)
  name = models.CharField(max_length=16)
  sex = models.CharField(max_length=4)

然后這id是自增的。

如果需要自定義id,然后這個id值是可用自己定義。那么就需要這樣做即可

class Student(models.Model):
  u_id = models.IntegerField(primary_key=True)
  name = models.CharField(max_length=16)
  sex = models.CharField(max_length=4)

把AutoField 修改為IntegerField 即可

這樣創(chuàng)建的數(shù)據(jù)。數(shù)據(jù)庫的id值。就不是自增的??捎迷诓迦雜ql的時候指定 u_id 的值為3,6,8等。

但是不能重復、

以上這篇基于django 的orm中非主鍵自增的實現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Numpy 實現(xiàn)交換兩行和兩列的方法

    Python Numpy 實現(xiàn)交換兩行和兩列的方法

    今天小編就為大家分享一篇Python Numpy 實現(xiàn)交換兩行和兩列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • pip install命令安裝擴展庫整理

    pip install命令安裝擴展庫整理

    這篇文章主要介紹了pip install命令安裝擴展庫整理,文中代碼和圖文講解的很詳細,有需要的同學可以參考下
    2021-03-03
  • Python+Matplotlib+LaTeX玩轉(zhuǎn)數(shù)學公式

    Python+Matplotlib+LaTeX玩轉(zhuǎn)數(shù)學公式

    這篇文章主要為大家介紹了如何在Matplotlib中使用LaTeX?公式和符號以及Python如何生成LaTeX數(shù)學公式。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-02-02
  • Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    這篇文章主要介紹了Python?ArcPy批量掩膜、重采樣大量遙感影像,本文介紹基于Python中ArcPy模塊,對大量柵格遙感影像文件進行批量掩膜與批量重采樣的操作,需要的朋友可以參考下
    2023-03-03
  • Python實現(xiàn)PS濾鏡的旋轉(zhuǎn)模糊功能示例

    Python實現(xiàn)PS濾鏡的旋轉(zhuǎn)模糊功能示例

    這篇文章主要介紹了Python實現(xiàn)PS濾鏡的旋轉(zhuǎn)模糊功能,涉及Python基于skimage庫針對圖片進行旋轉(zhuǎn)與模糊化處理的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Python列表創(chuàng)建與銷毀及緩存池機制

    Python列表創(chuàng)建與銷毀及緩存池機制

    這篇文章主要介紹了Python列表創(chuàng)建與銷毀及緩存池機制,文章基于python展開對列表創(chuàng)建與銷毀內(nèi)容的展開,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 如何將你的應用遷移到Python3的三個步驟

    如何將你的應用遷移到Python3的三個步驟

    這篇文章主要介紹了如何將你的應用遷移到Python3的三個步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 對python自動生成接口測試的示例講解

    對python自動生成接口測試的示例講解

    今天小編就為大家分享一篇對python自動生成接口測試的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python何時應該使用Lambda函數(shù)

    Python何時應該使用Lambda函數(shù)

    這篇文章主要介紹了Python何時應該使用Lambda函數(shù),Python 中定義函數(shù)有兩種方法,一種是用常規(guī)方式 def 定義,函數(shù)要指定名字,第二種是用 lambda 定義,不需要指定名字,稱為 Lambda 函數(shù),需要的朋友可以參考下
    2019-07-07
  • win10安裝tensorflow-gpu1.8.0詳細完整步驟

    win10安裝tensorflow-gpu1.8.0詳細完整步驟

    這篇文章主要介紹了win10安裝tensorflow-gpu1.8.0詳細完整步驟,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01

最新評論