Есть ли в django способ перечислить все устройства, на которые зашел пользователь?

Я пытаюсь получить список всех устройств и их местоположений, на которых учетная запись пользователя была зарегистрирована. аналогично активности входа в instagram, есть ли способ сделать это?



sorry for my bad english 😅

Вам придется установить pyyamln ua-parser, user-agents и django-user-agents

pip install pyyaml ua-parser user-agents
pip install django-user-agents

Затем добавьте django-user-agents в ваши установленные приложения:

INSTALLED_APPS = [
    ...
    'django_user_agents',
    ...
]

Затем добавьте промежуточную программу User в список промежуточных программ:

MIDDLEWARE_CLASSES = [
    ...
    'django_user_agents.middleware.UserAgentMiddleware',
]

Теперь вы можете использовать следующие методы для получения нужной вам информации, а затем хранить ее в базе данных:

def my_view(request):

    # Let's assume that the visitor uses an iPhone...
    request.user_agent.is_mobile # returns True
    request.user_agent.is_tablet # returns False
    request.user_agent.is_touch_capable # returns True
    request.user_agent.is_pc # returns False
    request.user_agent.is_bot # returns False

    # Accessing user agent's browser attributes
    request.user_agent.browser  # returns Browser(family=u'Mobile Safari', version=(5, 1), version_string='5.1')
    request.user_agent.browser.family  # returns 'Mobile Safari'
    request.user_agent.browser.version  # returns (5, 1)
    request.user_agent.browser.version_string   # returns '5.1'

    # Operating System properties
    request.user_agent.os  # returns OperatingSystem(family=u'iOS', version=(5, 1), version_string='5.1')
    request.user_agent.os.family  # returns 'iOS'
    request.user_agent.os.version  # returns (5, 1)
    request.user_agent.os.version_string  # returns '5.1'

    # Device properties
    request.user_agent.device  # returns Device(family='iPhone')
    request.user_agent.device.family  # returns 'iPhone'

PS: вы также можете использовать memcached для ускорения этого процесса:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

Вам нужно изменить Django AuthUser на Custom User Model и добавить поле с устройствами.

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