2011-02-24 67 views
1

我在Django 1.2.4中遇到了一些奇怪的問題。Django頁面緩存(麻煩db)?

我有一個讓用戶聲明前端設置的頁面。這些設置表示爲以下型號:

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) 

這些設置反映在管理員更改表單中。我已經覆蓋了模板,並提供該設置頁面,如下所示:

{% 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) 

我更改設置窗體上的設置後,我沒有看到它更新的任何頁面加載管理員更改表單。但是,在重新啓動dev服務器後,我看到數據很好。

這是怎麼回事?我是否遇到緩存問題?如果它在管理界面緩存,我怎樣才能禁用它只是一個頁面?

+0

如何將設置發送到更改表單模板? – 2011-02-24 07:37:21

+0

@Daniel Roseman OP更新。 – 2011-02-24 16:49:04

回答

0

您是否將設置保存在會話中?更改設置後是否更新了會話?

(這是我的問題,只是前幾天。)

+0

我沒有做任何會議。 – 2011-02-24 16:46:34

1

的問題是,你在管理類級別定義這些。因此,它們在類定義執行時(即在進程啓動時)進行評估。

將字典定義移入change_view方法本身。