如果在旧迁移中引用了自定义模型字段,则从项目或第三方应用中删除这些字段将导致问题。
为了解决这种情况,Django 提供了一些模型字段属性,使用 系统检查框架 来协助弃用模型字段。
将 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
并更新类似于以下内容的字典:
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.
}
你应该保留该字段在数据库迁移中操作所需的方法,如 __init__()
,deconstruct()
和 get_internal_type()
。只要任何引用该字段的迁移存在,就保留这个存根字段。例如,在压缩迁移并删除旧的迁移后,你应该可以完全删除该字段。
语法Django 模板是使用 Django 模板语言标记的一个文本文档或Python字符串。模板引擎可以识别和解释一些构造。主要是变量和标签...
当激活 SessionMiddleware 后,每个 HttpRequest 对象(任何 Django 视图函数的第一个参数) 将得到一个 session 属...
安装Python作为一个 Python 网络框架,Django 需要 Python。Python 包含了一个名为 SQLite 的轻量级数据库,所以你暂时不必自行...
在后台,Django将如何以及在哪里存储文件的决策委托给文件存储系统。这个对象实际上理解文件系统、打开和读取文件等。Django 的...
下表列出了JTextComponent类中包含的某些常用的文本组件方法。...我们可以根据两个标准对文本组件进行分类:number of lines in t...
Java Swing教程 -Java Swing外观和感觉Swing支持可插拔的外观(L F)。Swing支持可插拔的外观(L F)。...lafClassName参数是提供L F...
对selectList查询后的结果用Stream流进行了一些封装,使其可以返回一些指定结果,简洁了api的调用需要项目中已注入对应...
MyBatis-Plus 条件构造器-AbstractWrapperisNotNull(R column)isNotNull(boolean condition, R column)字段ISNOTNULL例:isNotN...
属性(properties)这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的Java属性文件中配置这些属性,也可以在pr...
Spring教程 -Spring表达式语言使用数据库属性文件...bean.property_name在下面的代码中,我们从“addressBean"注入了“country"...