[Django App] django-responsive2

pip install django-responsive2


[settings.py 변경]

INSTALLED_APPS = (
    ...
    'responsive',
    ...
)

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'responsive.context_processors.device',
    ...
)

MIDDLEWARE = (
    ...
    'responsive.middleware.ResponsiveMiddleware',
    ...
)

RESPONSIVE_MEDIA_QUERIES = {
    'small': {
        'verbose_name': ('Small screens'),
        'min_width': None,
        'max_width': 574,
    },
    'medium': {
        'verbose_name': ('Medium screens'),
        'min_width': 575,
        'max_width': 768,
    },
    'large': {
        'verbose_name': ('Large screens'),
        'min_width': 769,
        'max_width': 992,
    },
    'xlarge': {
        'verbose_name': ('XLarge screens'),
        'min_width': 993,
        'max_width': 1200,
    },
    'xxlarge': {
        'verbose_name': ('XXLarge screens'),
        'min_width': 1200,
        'max_width': None,
    }
}

[middleware.py 변경]

~/.virtualenvs/jone/lib/python3.6/site-packages/responsive$vi middleware.py

from django.utils.deprecation import MiddlewareMixin # 추가

class ResponsiveMiddleware(MiddlewareMixin): # request를 MiddlewareMixin로 변경

[context_processors.py 변경]

~/.virtualenvs/jone/lib/python3.6/site-packages/responsive$vi context_processors.py

def device(request):
    responsive_middleware = 'responsive.middleware.ResponsiveMiddleware'
    if responsive_middleware not in settings.MIDDLEWARE: # MIDDLEWARE_CLASSES를 MIDDLEWARE로 변경
        raise ImproperlyConfigured(

[Template 적용]

<div class="container">
    <div class="row">
        {% if device.is_iphone %}
            {# this snippet will only be rendered for retina devices with min_width = 320 #}
            <div class="app-store">
                <a href="#">Available on the App Store</a>
            </div>
        {% endif %}
    </div>

</div>

댓글

이 블로그의 인기 게시물

[Django Install] 9.1 sc제일은행 nginx-django 연결

[Django APP] django-widget-tweaks

[Django App] django-user-agents