при условии, что функция, которую вы хотите использовать, существует в каждой базе данных

г:

Этот вопрос часто возникает в 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?

Ответы на вопрос(1)

Ваш ответ на вопрос