基于Django类的视图移动模板

时间:2015-05-28 09:18:23

标签: python django django-class-based-views

我正在设置Django以使用不同的移动模板,但我不确定如何为基于类的视图设置它。如果我将它包含在类中,如下所示会抛出错误。

class EventList(ListView):
    model = Event
    paginate_by = 10
    context_object_name = 'events'
    category = None
    area = None
    starts = None
    ends = None
    slug_level = ""
    if request.mobile:
        template_name = "mobile/mobile.html"

    ...

我有像def get_queryset(self):这样的函数放置它所以它使用不同的移动模板,因为请求不在基于类的视图中

我在函数中使用minidetector

@detect_mobile
def home(request, template_name='pages/home.html'):
    ....
    if request.mobile:
        return render_to_response('mobile/mobile.html', context)

1 个答案:

答案 0 :(得分:1)

移动设备和桌面设备通常使用相同的HTTP方法,因此CBV不是您在这些客户端之间进行干扰的地方。

相反,您应该查看客户端的属性,例如user-agent标头,并相应地设置模板名称。

我认为以下页面提供了一个很好的介绍:

http://mobiforge.com/design-development/build-a-mobile-and-desktop-friendly-application-django-15-minutes