Пространственное соединение в 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.

Вернуться на верх