2015-08-31 5 views
0

Я использую пакет django, который проверяет, является ли браузер мобильным. Я хочу применить его к paginate_by, поэтому на мобильном устройстве меньше галерей с использованием self.request.mobile. Вот класс:Доступ к модели класса Django

class GalleryList(ListView): 
    model = Gallery 
    paginate_by = 20 
    context_object_name = 'galleries' 
    category = None 

    def get_queryset(self): 
     if self.request.mobile: 
      self.template_name = 'mobile/gallery.html' 
     qs = Gallery.objects.filter(visible=True,).order_by('-created','-hot') 
     return qs 
+0

Какой у Вас вопрос ? – Xebax

ответ

0

Вы можете переопределить метод get_template_names из ListView, как следующее:

def get_template_names(self): 
    if self.request.mobile: 
     return 'mobile/gallery.html' 
    return 'normal/gallery.html' 

EDIT:

Для постраничной от вы можете попробовать это:

def get_paginate_by(self, queryset): 
    if self.request.mobile: 
     return 5 
    return 20 
+0

Я сделал то, что хочу, это обернуть страницу так, чтобы на мобильном устройстве оно получилось 5 и на рабочем столе 20 –

+0

Вы можете проверить мое редактирование – Mounir

Смежные вопросы