当用户使用 Django 在选择框中选择不同的选项时,是否可以使页面的一部分使用完全不同的 CSS 文件?
我基本上想要做的是向页面添加一个主题选择器。
谢谢。
要在 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
这应该使用 javascript 而不是 Django 来完成。考虑用 Jquery 来做。