W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
如果在舊遷移中引用了自定義模型字段,則從項(xiàng)目或第三方應(yīng)用中刪除這些字段將導(dǎo)致問題。
為了解決這種情況,Django 提供了一些模型字段屬性,使用 系統(tǒng)檢查框架 來協(xié)助棄用模型字段。
將 ?system_check_deprecated_details
?屬性添加到你的模型字段中,類似于:
class IPAddressField(Field):
system_check_deprecated_details = {
'msg': (
'IPAddressField has been deprecated. Support for it (except '
'in historical migrations) will be removed in Django 1.9.'
),
'hint': 'Use GenericIPAddressField instead.', # optional
'id': 'fields.W900', # pick a unique ID for your field.
}
在你選擇的棄用期(Django 本身的字段有兩個或三個功能版本)之后,將 ?system_check_deprecated_details
?屬性改為 ?system_check_removed_details
?并更新類似于以下內(nèi)容的字典:
class IPAddressField(Field):
system_check_removed_details = {
'msg': (
'IPAddressField has been removed except for support in '
'historical migrations.'
),
'hint': 'Use GenericIPAddressField instead.',
'id': 'fields.E900', # pick a unique ID for your field.
}
你應(yīng)該保留該字段在數(shù)據(jù)庫遷移中操作所需的方法,如 ?__init__()
?,?deconstruct()
?和 ?get_internal_type()
?。只要任何引用該字段的遷移存在,就保留這個存根字段。例如,在壓縮遷移并刪除舊的遷移后,你應(yīng)該可以完全刪除該字段。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: