Как заменить extra на Query Expression в моем случае
У меня есть фильтр в DRF. Он применяется к существующему queryset. Фильтр проверяет находится ли товар в Геозоне
class Goods(models.Model):
coord = gis_models.PointField(verbose_name='Текущее местоположение', null=True, blank=True)
.....
class GeoZone(models.Model):
zone = gis_models.PolygonField(null=True)
....
queryset = queryset.extra(
where=['st_contains("goods_geozone"."zone", "goods_goods"."coord") and "goods_geozone".id=%s'],
tables=["goods_geozone"], params=[geozone_id])
В документации к extra() https://docs.djangoproject.com/en/3.1/ref/models/querysets/#extra сказано, что будет устаревшим и желательно не использовать. Думал сделать через Query Expression, но не получается. Главная проблемма, что в этих 2-х моделях нет связки по FK. В extra я передал таблицу в tables и поэтому в join в sql смог добавить "goods_geozone".id=%s'