Пространственное соединение в Django
Я пытаюсь сделать пространственное соединение ( как объяснено здесь), используя PostGIS в Django.
Не помогают пространственные поиски Django. Моя лучшая подсказка - использовать пользовательский SQL, но я действительно предпочел бы продолжать использовать QuerySet запрос.
На простом английском мой запрос будет выглядеть следующим образом: Выберите все поместья, которые содержат хотя бы одно здание с типом "тяжелое"
Вот мои две модели:
class Building(models.Model):
type = models.CharField(max_length=255, null=True, db_index=True)
footprint = models.IntegerField(null=True, blank=True)
perimeter = models.PolygonField(null=True, spatial_index=True)
class Estate(models.Model):
city = models.ForeignKey(City, on_delete=models.CASCADE)
area = models.IntegerField(null=True, validators=[MinValueValidator(1)])
perimeter = models.PolygonField(null=True, validators=[estate_val.perimeter], spatial_index=True)
Есть ли способ сделать что-то вроде:
estates = Estate.objects.filter(CUSTOM_JOIN_FILTER)
Не Q объектчто вы ищете?
Вы можете делать довольно сложные запросы, используя Q Object.