[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>
댓글
댓글 쓰기