第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用預(yù)定義的 aplphabetic 部分聲明基于時(shí)間的字母數(shù)字 id 字段

如何使用預(yù)定義的 aplphabetic 部分聲明基于時(shí)間的字母數(shù)字 id 字段

www說(shuō) 2022-08-02 16:09:05
我正在Django中開發(fā)一個(gè)應(yīng)用程序。我想在我的模型中插入一個(gè)自動(dòng)遞增的字母數(shù)字唯一ID字段,默認(rèn)情況下,具有固定的字母部分和自動(dòng)遞增的數(shù)字部分。但我也希望可用性從管理部分將此ID更改為另一個(gè)字母數(shù)字,具有不同的字母數(shù)字和數(shù)字部分。我試圖實(shí)現(xiàn)這一點(diǎn),但事實(shí)證明,嘗試實(shí)現(xiàn)這樣一個(gè)字段并使其成為模型的自動(dòng)字段會(huì)在我的數(shù)據(jù)庫(kù)中產(chǎn)生問(wèn)題。所以我正在改變我的目標(biāo):現(xiàn)在我想實(shí)現(xiàn)一個(gè)基于時(shí)間的字母數(shù)字唯一字段,其中包含預(yù)定義的aplphabetic部分。請(qǐng)注意:我不想覆蓋django默認(rèn)id字段,我只想在我的模型中包含一個(gè)字段,該字段獲取一個(gè)唯一的自定義字母數(shù)字值作為默認(rèn)值。以下是我在 models.py 中所做的:def return_timestamped_id():    prefix = "ITCH"        import time    this_time = time.time()    this_time  = this_time  *10000000    this_time  = int(this_time)    timestamp = str(this_time)    default_value = prefix + timestamp    return(default_value)class object_example(models.Model):    name = models.CharField(max_length=256, blank=True, null=True)        Id_generated = models.CharField(max_length=256, blank=False, null=False, unique=True, default=return_timestamped_id())問(wèn)題是,當(dāng)我從管理部分向此模型添加對(duì)象時(shí),The 總是相同的。Id_generated我期望每次添加新對(duì)象時(shí)都會(huì)調(diào)用該函數(shù)。很明顯,它只是調(diào)用一次,然后將相同的返回值傳遞給每個(gè)新對(duì)象。return_timestamped_id()Id_generated如何更改代碼,以便在每次添加新對(duì)象時(shí)獲得不同的時(shí)間戳?
查看完整描述

1 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

正如你可能在Django文檔中看到的,你可以使用一個(gè)值或一個(gè)可調(diào)用作為默認(rèn)值。如果您使用可調(diào)用的(例如函數(shù)),則每次需要默認(rèn)值時(shí)都會(huì)調(diào)用它。


問(wèn)題:您正在傳遞值,因?yàn)槟谡{(diào)用函數(shù) 。該函數(shù)被調(diào)用一次,當(dāng)您的模塊(models.py)導(dǎo)入到應(yīng)用程序中時(shí)。default=return_timestamped_id()


解決方案:傳遞函數(shù)本身default=return_timestamped_id


你可以在django.models.Fields類中看到相關(guān)的代碼(注釋我的):


class Field():

    def __init__(self, ..., default=NOT_PROVIDED,...):

        ...

        self.default = default  # save the default as a member variable

        ...


    def get_default(self):

        """Return the default value for this field."""

        return self._get_default()


    @cached_property

    def _get_default(self):

        if self.has_default():

            if callable(self.default):  # if it is callable, return it

                return self.default

            return lambda: self.default # else wrap in a callable


查看完整回答
反對(duì) 回復(fù) 2022-08-02
  • 1 回答
  • 0 關(guān)注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)