Как добавлять динамическое поле в модель при поиске?

Привет,

Не знаю, как реализовать следующую задача. Есть форма поиска по записям с координатами, в которой пользователь может указать ключевые слова, и выбрать (не обязательное поле) дистанцию как далеко находится от этих мест (текущее место пользователя и где находится место). Далее, мы производит поиск записей по ключевым словам, и если пользователь указал дистанцию, то производим подсчет разности координат пользователя и координаты записи. Если условие выполняется, мне необходимо вернуть модели записей, и добавить динамическое поле, в котором будет содержаться значение как далеко пользователь находится от этих мест. И потом соответственно отобразить на странице результатов поиска.

Не могу найти и понять, как реализовать динамическое поле, которое мы сможем проставить в менеджере, и вернуть список найденных мест с динамическим полем в моделе.

Спасибо.
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Кастомный темплейт фильтр?
@register.filter
def distance(obj, coords):
    return obj.get_distance(coords)


В модели:
def get_distance(self, coords):
    return self.calculate_distance(self.coords, coords) 
   # ^^^^ это ужасно сложный код подсчета дистанции


В шаблоне:
{% for object in object_list %}
  {{ object|distance:coords }}
{% endfor %}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы