我是Django的新手,正在使用这个框架开发我的第一个网站。这样的网站必须在屏幕右上角的所有部分都有自己的社交网络链接。为了实现这一目标,我在models.py
中创建了两个字段:社交网络链接和fontawesome图标。
网站的每个部分都使用模板呈现,所有模板仅从一个基本模板扩展。该基本模板必须包含社交网络链接
我知道如何在所有部分中显示这些链接的唯一方法是将它们传递到每个视图中的模板。这是针对DRY(不要重复自己)的规则。有没有办法只传递一次,并让所有网站都可以看到它?
答案 0 :(得分:0)
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// compiler error on line below
UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.font: font], for: UIControlState.normal)
}
只有两条规则......
Writing your own context processors
<强> context_processors.py 强>
request
更新您的settings.py以关注
def database_social_links(request):
social_links = SocialLinks.objects.all()
return {'social_links': social_links }
在你的base.html或其他......
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# insert your TEMPLATE_DIRS here
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
'your_app.context_processors.database_social_links',
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]