при условии, что функция, которую вы хотите использовать, существует в каждой базе данных
г:
Этот вопрос часто возникает в SO:
Эквивалент PostGIS ST_MakeValid в Django GEOSГеоджанго: как буферизовать из точкиПолучить случайную точку от Джанго PolygonFieldДжанго кастом для сложной функции (функция sql)и может быть применено к вышеуказанному, а также к следующему:
Django F выражение на объектах datetimeЯ хотел написать пример документации SO, но так как он был закрыт 8 августа 2017 года, я последую предложениюэтот широко обсуждаемый и обсуждаемый мета-ответ и напишите мой пример в качестве поста с автоответчиком.
Конечно, я был бы более чем рад увидеть и другой подход !!
Вопрос:
Django / GeoDjango имеет некоторые функции базы данных, такие какLower()
или жеMakeValid()
который можно использовать так:
Author.objects.create(name='Margaret Smith')
author = Author.objects.annotate(name_lower=Lower('name')).get()
print(author.name_lower)
Есть ли способ использовать и / или создать свою собственную функцию базы данных на основе существующих функций базы данных, таких как:
Position()
(Баз данных)TRIM()
(SQLite)ST_MakePoint()
(PostgreSQL с PostGIS)Как я могу применить / использовать эти функции в Django / GeoDjango ORM?