日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

動態設置django的model field的默認值操作步驟

瀏覽:31日期:2024-10-16 14:08:33

問題背景

django的model field需要動態設置默認值,具體案例如下:

原始代碼如下,model是Application,其中字段ignore_fort的默認值設置為False

class Application(TimestampedModel): name = models.CharField(max_length=255, null=True) ignore_fort = models.BooleanField(default=False)

然而現在有這樣一個需求:default需要根據某個變量ENV進行動態設置,如果ENV是UAT或者FAT(不區分大小寫,具體分支,比如uaT01也可以),則default設置為True,否則設置為False

首先想到的是如下代碼:

class Application(TimestampedModel): name = models.CharField(max_length=255, null=True) ignore_fort = models.BooleanField(default= ’UAT’in ENV.upper() or ’FAT’ in ENV.upper())

通過python manage.py shell_plus啟動shell調試,發現如果ENV本來設置的是什么值,邏輯正確,如果在shell中修改ENV的值,則新建的model的ignore_fort值并不是根據當前ENV值進行設置,而是保持原來的值,達不到需求。例如,ENV值本來設置為uat,那么新建app = Application(),print app.ignore_fort結果是True,修改ENV ENV = ’hhh’,app1 = Application(); print app1.ignore_fort結果還是True,而我們需要的是False。

分析

官方描述如下:

The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created.

如果想要在創建對象時動態修改default的值,需要用callable object,可以理解為函數調用?

上述代碼的default值并不是callable object,所以并不是在object創建時同臺更新。

解決方法

參考 正解如下,用一個函數調用實現callable object,進而實現動態跟新default

def get_default_ignore_fort(): cur_env =ENV.upper() return any(i in cur_env for i in (’UAT’, ’FAT’))class Application(TimestampedModel): name = models.CharField(max_length=255, null=True) ignore_fort = models.BooleanField(default=get_default_ignore_fort)

補充知識:Django ModelChoiceField:過濾查詢集并將默認值設置為對象

我有一個Django Form類定義喜歡這個在Models:

class AccountDetailsForm(forms.Form): ... adminuser = forms.ModelChoiceField(queryset=User.objects.all())

這工作正常,但它有一些限制,我似乎不能解決:

(1)我想在查詢集上使用一個過濾器,基于傳遞給表單的變量accountid,如下所示:

User.objects.filter(account=accountid)

這不能在模型中工作,因為accountid不能作為一個變量傳遞,當然。

因此,查詢集必須以某種方式在視圖中定義,但就我可以看到它是一個必需的字段在Form類。

(2)我想默認選擇AccountDetailsForm數據庫中的一個對象,我可以在視圖中選擇這樣:

User.objects.filter(account=accountid).filter(primary_user=1)

我試過指定adminuser作為默認值在窗體中,(它與其他標準表單字段,如CharField工作):

adminuser = User.objects.filter(account=accountid).filter(primary_user=1)...form = AccountDetailsForm({’adminuser’: adminuser})return render_to_response(’accounts/edit/accountdetails.html’, {’form’: form, ’account’:account})

但沒有運氣。

我應該使用除ModelChoiceField之外的其他方式給我這里需要的靈活性嗎?

謝謝。

覆蓋init方法并接受新的關鍵字參數

class AccountDetailsForm(forms.Form): ... adminuser = forms.ModelChoiceField(queryset=User.objects.all()) def __init__(self, *args, **kwargs): accountid = kwargs.pop(’accountid’, None) super(AccountDetailsForm, self).__init__(*args, **kwargs) if accountid: self.fields[’adminuser’].queryset = User.objects.filter(account=accountid)form = AccountDetailsForm(accountid=3)

您可以隨時在視圖中手動設置選擇。

form = AccountDetailsForm()form.fields[’adminuser’].queryset = User.objects.filter(account=accountid)

警告:您不是通過將字典傳遞到您的示例中的表單來設置默認值。

你實際上創建了一個綁定表,可能觸發驗證和所有的爵士。

要設置默認值,use the initials argument.

form = AccountDetailsForm(initial={’adminuser’:’3’})

翻譯自:這里

以上這篇動態設置django的model field的默認值操作步驟就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产亚洲一区二区三区| 99免费精品| 在线国产一区二区| 欧美日韩国产在线观看网站| 色天使综合视频| 婷婷亚洲五月| 亚洲+小说+欧美+激情+另类| 国产日韩欧美一区在线| 久久精品国产在热久久| 亚洲成人av观看| 蜜臀av在线播放一区二区三区| av资源新版天堂在线| 在线精品小视频| 国产精品magnet| 欧美成人高清| 欧美一级久久| 欧美精品羞羞答答| 国产三级一区| 1024精品一区二区三区| 日本99精品| 亚洲高清影视| 精品亚洲精品| 免费欧美日韩| 欧美羞羞视频| 国产乱码精品| 午夜在线一区| 国产精品mv在线观看| 首页欧美精品中文字幕| av日韩中文| 欧美伊人久久| 一级欧美视频| 成人在线免费观看91| 亚洲性视频在线| 国产精品分类| 日韩三区四区| 欧美成人国产| 中文字幕日本一区| 夜夜嗨一区二区| 999久久久91| 91中文字幕精品永久在线| 欧美精品国产白浆久久久久| 蜜桃精品在线| 97精品中文字幕| 国产精品tv| 国产高清视频一区二区| 国产欧美日韩一区二区三区四区 | 国产精品久久亚洲不卡| 久久国产高清| 99国产一区| 影音先锋久久| 亚洲激精日韩激精欧美精品| 日韩激情一二三区| 日本不卡高清| 综合在线一区| 亚洲a成人v| 日本亚洲三级在线| 六月婷婷一区| 日韩有码av| 欧美日一区二区三区在线观看国产免| 亚洲精品无吗| 国产精品国产三级在线观看| 精品一区二区三区四区五区| 荡女精品导航| 蜜臀久久精品| 久久精品欧美一区| 久久精选视频| 久久久久免费| 亚洲激情不卡| 久久激情综合网| 国语精品一区| 国产在线|日韩| 怡红院精品视频在线观看极品| 男人操女人的视频在线观看欧美| 最新亚洲国产| 日韩1区在线| 亚洲欧美日韩视频二区| 亚洲69av| 日本黄色精品| 亚洲精品伦理| 国产videos久久| 亚洲一区黄色| 久久狠狠亚洲综合| 美女国产一区二区三区| 精品欧美激情在线观看| 国产精品主播| 女同性一区二区三区人了人一| 亚洲精品在线a| 欧美日韩在线观看首页| 视频一区二区中文字幕| 丰满少妇一区| 亚洲制服欧美另类| 伊伊综合在线| 国产精品男女| 视频一区二区欧美| 欧美日韩色图| 蜜桃精品视频| 精品日韩毛片| 蜜桃av.网站在线观看| 你懂的国产精品| 亚洲精品三级| 亚洲综合日本| 五月婷婷亚洲| 日韩久久精品| 麻豆国产精品| 欧美日韩va| 免费不卡在线观看| 国产精品99一区二区| 黑人精品一区| а√天堂中文在线资源8| 精品久久国产一区| 欧美日韩一区二区国产| 欧美成a人片免费观看久久五月天| 国产农村妇女精品一二区| 日韩在线看片| 美女一区网站| 日本久久成人网| 五月天av在线| а√天堂8资源中文在线| 精品日韩在线| 精品美女在线视频| 欧美xxxx中国| 亚洲91精品| 国产亚洲综合精品| 尹人成人综合网| 亚洲激情婷婷| 亚洲综合精品| 免费人成精品欧美精品| 噜噜噜躁狠狠躁狠狠精品视频| 久久亚洲欧美| 欧美久久久网站| 美女高潮久久久| 免费看av不卡| 激情综合亚洲| 亚洲激情五月| 亚洲一区二区三区四区电影 | 亚洲欧美日韩国产综合精品二区| 在线成人直播| 亚洲精品激情| 日本99精品| 黄色在线观看www| 日韩精品不卡一区二区| 久久国产影院| 99国产精品视频免费观看一公开| 亚洲91网站| 人在线成免费视频| 亚洲免费一区二区| 青青草伊人久久| 在线看片国产福利你懂的| 香蕉久久精品| 国产日韩欧美一区在线| 岛国av在线网站| 亚洲理论在线| 久久精品国产久精国产爱| 久久影视一区| 日本欧美大码aⅴ在线播放| 日韩国产在线观看| 国产精品成人a在线观看| 美女精品一区| 国产高清精品二区| 国产一区清纯| 国产日产精品_国产精品毛片| 中文在线中文资源| 91大神在线观看线路一区| 欧产日产国产精品视频| 日本少妇精品亚洲第一区| 欧美sss在线视频| 国产毛片精品久久| 国产精品色网| 日产午夜精品一线二线三线| 日韩一区精品视频| 国产欧美日韩精品高清二区综合区 | 日本一不卡视频| 91欧美在线| 国产精品亚洲欧美| 亚洲精选成人| 欧美 日韩 国产精品免费观看| 久久精品99国产精品| 天堂成人国产精品一区| 婷婷成人在线| 91精品亚洲| 精品精品国产三级a∨在线| 日韩一区免费| 视频一区二区三区在线| 亚洲精品1区| 在线亚洲自拍| 国产亚洲一级| 日韩一级精品| 国产视频一区三区| 精品在线99| 欧美69视频| 亚洲免费成人| 香蕉成人久久| 亚洲香蕉视频| 中文字幕中文字幕精品| 噜噜噜久久亚洲精品国产品小说| 久久久蜜桃一区二区人| 日韩三区免费| 九九综合九九| 蜜臀91精品一区二区三区| 亚洲九九精品|