Сохранение города незарегистрированного пользователя. Django - PullRequest
0 голосов
/ 17 июня 2020

Я хочу реализовать функцию: сохранение города незарегистрированного пользователя в моем django приложении.

Пример

  1. Я зашел на сайт впервые. И выбрал свой город. (не зарегистрирован)

  2. Зашел на сайт второй раз. Сайт определил мой город.

Как это сделать с django?

PS Не могли бы вы порекомендовать статьи или материалы?

Пример сайта https://edadeal.ru/ (можно выбрать город в правом верхнем углу красным текстом)

Ответы [ 2 ]

1 голос
/ 18 июня 2020
  • Попросите пользователя сначала ввести свой почтовый индекс во всплывающем окне.
  • Затем я бы использовал API веб-сервисов, например EZCMD.com , чтобы получить список близлежащих городов, который затем пользователь выберет на основе своего почтового индекса.
  • Затем сохраните этот список в cook ie вместе с уникальным токеном анонимного пользователя. Когда пользователь возвращается на сайт, проверьте, есть ли повар ie.
  • Сравните токен с вашей базой данных для людей, которые посетили сайт и ввели свой почтовый индекс.

Чтобы получить список городов для ввода в форму, вы можете сделать что-то вроде:

$.getJSON('https://ezcmd.com/apps/api_geo_postal_codes/nearby_locations_by_zip_code/GUEST_USER/-1?zip_code=90210&country_code=US&unit=Km&within=5', function(data){
    //extract the data you need for your form here. This API might be best for the US, 
    //don't know about Russia.
    console.log(data);
});

См. jsfiddle , чтобы поиграть с API.

Вы можете использовать это, установить повара ie

Используйте это, чтобы установить уникальный токен

1 голос
/ 17 июня 2020

Я бы порекомендовал прочитать этот вопрос , чтобы понять, как получить IP-адрес и местоположение через GeoIP. Затем он может быть сохранен как часть модели в базе данных.

Вы можете получить код для проверки базы данных, чтобы увидеть, появлялся ли ранее IP-адрес, а если нет, то сохраните его в соответствующем городе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...