gpt4 book ai didi

python - Django 页面缓存(数据库问题)?

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:28 25 4
gpt4 key购买 nike

我在 Django 1.2.4 中遇到了一些奇怪的问题。

我有一个页面可以让用户声明前端设置。这些设置在以下模型中表示:

class Setting(models.Model):
"""
Maintains a key-value pair for some front-end editable setting.
"""

class Meta:
abstract = True

name = models.CharField(max_length=120, primary_key=True)
description = models.CharField(max_length=300, blank=True)

class IntegerSetting(Setting):
value = models.IntegerField()

class ListSetting(Setting):
value = PickledObjectField(default=lambda: list(), editable=True)

这些设置反射(reflect)在管理员更改表单中。我已经覆盖了模板,并使设置可用于页面,如下所示:

{% extends 'admin/change_form.html' %}

{% block extrahead %}
<script type="application/javascript">
var global= {};
global.min_slider = {{min_slider}};
global.max_slider = {{max_slider}};
</script>
{{ block.super }}
{% endblock %}

这些值由管理类提供:

class FooAdmin(admin.ModelAdmin):
form = FooAdminForm

min_max = {'min_slider': get_setting("Min Slider Value"), 'max_slider': get_setting("Max Slider Value")}

def change_view(self, request, object_id, extra_context=None):
extra_context = extra_context or {}
extra_context.update(self.min_max)
return super(FooAdmin, self).change_view(request, object_id, extra_context)

在设置表单上更改设置后,我在管理更改表单的任何页面加载中都看不到它更新。但是,重新启动开发服务器后,我看到的数据很好。

这是怎么回事?我遇到了缓存问题吗?如果它在管理界面中缓存,我如何才能仅针对该页面禁用它?

最佳答案

问题是您在管理中的类(class)级别定义这些。因此,它们在执行类定义时(即进程启动时)进行评估。

将字典定义移至 change_view 方法本身。

关于python - Django 页面缓存(数据库问题)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com