💡
原文英文,约3200词,阅读约需12分钟。
📝
内容提要
这篇文章介绍了Django 5.0中的新功能GeneratedField,以及如何在GeoDjango和PostgGIS中使用它。GeneratedField是一个完全由数据库计算的字段,适用于所有支持的后端数据库。文章提供了使用GeneratedField的模型示例,并介绍了相关的属性和迁移过程。作者还分享了一些使用GeneratedField的实际示例,包括计算地理哈希、长度和面积等字段。总的来说,GeneratedField是一个强大的工具,可以解决各种问题,并将逻辑带回数据库层。
🎯
关键要点
- GeneratedField是Django 5.0中的新特性,完全由数据库计算其值。
- GeneratedField适用于所有支持的后端数据库。
- 使用GeneratedField可以在GeoDjango和PostgGIS中创建模型。
- GeneratedField的值不能被设置或修改,自动由数据库计算。
- 定义GeneratedField时需要指定expression、output_field和db_persist属性。
- db_persist属性使得数据库列占用存储空间,像真实列一样。
- 使用PostGIS作为数据库后端时,GeneratedField可以持久化存储。
- 迁移过程中生成的SQL代码使用GENERATED ALWAYS SQL (...) STORED语法。
- 实验Django GeneratedField需要Python 3、Django 5.0和Psycopg等环境。
- GeoDjango是Django的一个模块,支持地理数据处理。
- 可以通过创建样本应用程序来测试GeneratedField的功能。
- 示例模型展示了如何使用GeneratedField计算地理哈希、长度和面积等字段。
- GeoDjango提供多种函数用于地理字段的信息提取和转换。
- 在Django shell中可以验证模型的行为是否符合预期。
- 生成的字段可以简化不同应用程序在同一数据库上的协作。
➡️