1

当用户使用 Django 在选择框中选择不同的选项时,是否可以使页面的一部分使用完全不同的 CSS 文件?

我基本上想要做的是向页面添加一个主题选择器。

谢谢。

4

2 回答 2

2

要在 Django 中创建主题选择器,请使用表单从用户那里获取样式表选择并将样式选择存储在会话中。有效的表格应该执行:

request.session['style'] = the_style_choice

https://docs.djangoproject.com/en/1.5/topics/http/sessions/

使用上下文处理器在 settings.py 中为每个请求返回正确的样式表:

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    "MyContextProcessor.get_style", 
)

在 MyContextProcessor.py

def get_style(request):
    if 'style' in request.session:
        style = request.session.get('style')                
    else:
        style = 'some_style.css'
        request.session['style'] = style
    return {'style': style, }

https://docs.djangoproject.com/en/1.5/ref/templates/api/#subclassing-context-requestcontext

在您的基本模板中添加样式:

{{ style }}

可以在表单中使用 Ajax 给用户一个流畅的体验:https ://docs.djangoproject.com/en/1.5/topics/class-based-views/generic-editing/#ajax-example

于 2013-07-30T11:39:10.453 回答
-1

这应该使用 javascript 而不是 Django 来完成。考虑用 Jquery 来做。

编辑:如何使用 jQuery 切换我的 CSS 样式表?

于 2013-07-30T09:26:24.983 回答