django - 在 django 中更新表的值的问题
问题描述
在 bast_tag.py 文件中,我从只有一行的站点设置表中获取信息,然后将其显示在模板中。当我想在管理面板中更新该行中的值时,信息不会更新,为了更新值,我必须停止服务器并再次运行命令“py manage.py runserver”!请指导我。谢谢你
base_tag.py:
_site = Settings.objects.first()
@register.simple_tag
def title_site():
return _site.title
@register.simple_tag
def description_site():
return _site.description
@register.simple_tag
def five_icon_site():
return _site.five_icon.url
@register.inclusion_tag("wooden/partials/footer.html")
def footer_tag():
context = {
'about': _site.about,
'logo': _site.logo_ftr.url,
}
return context
页脚.html:
<div class="d-flex justify-content-around align-items-center flex-column ftr_center wow fadeInUp">
<img src="{{logo}}">
<p class="text-center">
{{about}}
</p>
</div>
index.html 中的 head 标签:
<title>{% title_site %}</title>
<meta name="description" content="{% description_site %}">
解决方案
您应该在方法内进行数据库查询。否则查询只会在 django 启动时执行一次。尝试这个:
@register.simple_tag
def title_site():
_site = Settings.objects.first()
return _site.title
其他标签也一样。您还需要在这些方法中运行数据库查询。如果您不希望多次执行查询,您可以使用自定义上下文处理器。