У меня есть два модельных магазина и клиент
магазин
class Shop(models.Model):
address = models.CharField(max_length=70, null=True)
Shop_category = models.CharField(max_length=200, null=True, )
Name=models.CharField(max_length=70)
distance = models.PositiveIntegerField(null=True)
shop_location = models.PointField(null=True, default=Point(28.49, 77.33))
покупатель
class Customer(models.Model):
user = models.OneToOneField(User, null=True,
on_delete=models.CASCADE)
customer_location = models.PointField(null=True, default=Point(28.49, 77.33))
Я хочу установить фильтр на магазин. Магазин покажет покупателю, если расстояние между магазином и покупателем меньше расстояния, указанного в shop.distance и my views.py.
from django.contrib.gis.db.models.functions import Distance
Shop_list = Shop.objects.filter(
distance_gte=Distance('shop_location',
request.user.customer.customer_location)
)
Я получаю сообщение об ошибке Не удается преобразовать ключевое слово «distance_gte» в поле. Возможные варианты: Shop_category, адрес, расстояние, идентификатор, имя, shop_location, пользователь, user_id.
distance
в полеShop
? Это расстояние до чего? - person Willem Van Onsem   schedule 12.06.2020Shop
, и это не данные, которые должны сохраняться. - person Willem Van Onsem   schedule 12.06.2020distance
в поле, так как оно отличается для каждой комбинации пользователя/магазина. - person Willem Van Onsem   schedule 12.06.2020Customer
? Итак, связанныеCustomer
для данного пользователя? - person Willem Van Onsem   schedule 12.06.2020user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
и указал пользователя в представленииdistance_gte=Distance('shop_location', request.user.customer.customer_location)
, тогда ошибка Не удается преобразовать ключевое слово 'distance_gte' в поле. Варианты: адрес, расстояние, идентификатор, имя, заказ, продукт, расположение магазина, пользователь, идентификатор_пользователя @WillemVanOnsem - person Sarthak tiwari   schedule 13.06.2020