【发布时间】:2018-03-23 05:35:01
【问题描述】:
序幕:
这是SO中经常出现的一个问题:
- Equivalent of PostGIS ST_MakeValid in Django GEOS
- Geodjango: How to Buffer From Point
- Get random point from django PolygonField
- Django custom for complex Func (sql function)
并且可以应用于上述以及以下:
我想写一个关于 SO Documentation 的示例,但由于它已于 2017 年 8 月 8 日关闭,我将按照 this widely upvoted and discussed meta answer 的建议将我的示例写为一个自我回答的帖子。
当然,我也很乐意看到任何不同的方法!
问题:
Django/GeoDjango 有一些数据库函数,如Lower() 或MakeValid(),可以这样使用:
Author.objects.create(name='Margaret Smith')
author = Author.objects.annotate(name_lower=Lower('name')).get()
print(author.name_lower)
有什么方法可以使用和/或创建我自己的基于现有数据库函数的自定义数据库函数,例如:
-
Position()(MySQL) -
TRIM()(SQLite) -
ST_MakePoint()(带有 PostGIS 的 PostgreSQL)
如何在 Django/GeoDjango ORM 中应用/使用这些函数?
【问题讨论】:
标签: python django database geodjango django-database-functions