首页 > 解决方案 > 在 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

解决方案


您应该在方法内进行数据库查询。否则查询只会在 django 启动时执行一次。尝试这个:

@register.simple_tag
def title_site():
    _site = Settings.objects.first()
    return _site.title

其他标签也一样。您还需要在这些方法中运行数据库查询。如果您不希望多次执行查询,您可以使用自定义上下文处理器


推荐阅读