当用户使用Django在选择框中选择其他选项时,是否可以使页面的一部分使用完全不同的CSS文件?
我基本上要做的是在页面中添加一个主题选择器。
感谢。
答案 0 :(得分: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
答案 1 :(得分:-1)
这应该用javascript完成,而不是Django。看看用Jquery做这件事。