抱歉,如果对此有一个明确的答案,我仍然在学习Django。
我正在创建一个包含6个预定主题的网站(未存储在数据库中)
英语,公民,文学,语言,历史,圣经
每个主题都将与一种独特的颜色相关联。
我有一个subject.html页面的模板和一个从URL appname / subject / subjectname加载的视图
我需要做的是根据访问的主题应用特定的CSS来设置页面样式。例如,如果用户转到appname / subject / english,我希望页面以英语为“主题”。
我希望我已经说清楚了,我也想知道是否有一种方法可以将实际的CSS代码添加到样式表中,而不必从后端一一更改属性。
非常感谢!
python大神给出的解决方案
Django的视图不负责演示,这是模板(当然还有CSS等)的责任。现在,假设您具有用于不同主题的相同视图,那么该视图显然需要知道哪个是当前主题(我假设是从作为参数传递给该视图的url的捕获部分中获得的),因此可以轻松地将此信息传递给模板,进而可以使用它向body标签添加特定于主题的类。然后,您只需要相应地编写CSS。
举个例子:
# urls.py
patterns = urlpatterns('',
#...
url(r'whatever/(P?<subject>[a-z-]+>)/$', 'myviews.index', ...),
)
# myviews.py
def index(request, subject):
# do whatever
context = {
# whatever else
'subject':subject
}
return render(request, "whatever/index.html", context)
# whatever/index.html
<html>
# headers etc
<body class="something {{ subject }} etc">
# whatever here
</body>
</html>