1

我的应用程序中有两个模板标签,其中包含在数据库中显示条目的表单。当我更改数据或向 db 添加新条目时,表单会显示旧数据。在管理面板中一切都是正确的(更新)。当我重新启动服务器时(我的意思是manage.py runserver)表单显示更新的数据库条目。如何使表单显示更新的数据?

关于
克里斯

编辑:
文件templatetags/oceny_tags.py::

from django import template
from oceny.formularze import StudentFormularz, PrzeniesStudentaFormularz

def dodajStudenta(req):
    formularz = StudentFormularz(req)
    return {'formularz': formularz}

def przeniesStudenta(req):
    formularz = PrzeniesStudentaFormularz(req)
    return {'formularz': formularz}

register = template.Library()
register.inclusion_tag('oceny/formularz_studenta.html', takes_context = False)(dodajStudenta)
register.inclusion_tag('oceny/formularz_przenies_studenta.html', takes_context = False)(przeniesStudenta)

文件:views.py视图负责处理表单:

def zarzadzajStudentami(request):
    formularze = ['dodaj_studenta', 'przenies_studenta']
    req = {}
    for e in formularze:
        req[e] = None
    if request.POST:
        req[request.POST['formularz']] = request.POST
        if request.POST['formularz'] == 'dodaj_studenta':
            formularz = StudentFormularz(request.POST)
            if formularz.is_valid():
                formularz.save()
                return HttpResponseRedirect(reverse('zarzadzaj_studentami'))
        elif request.POST['formularz'] == 'przenies_studenta':
            formularz = PrzeniesStudentaFormularz(request.POST)
            if formularz.is_valid():
                student = Student.objects.get(id = request.POST['student'])
                grupa = Grupa.objects.get(id = request.POST['grupa'])
                student.grupa = grupa
                student.save()
                return HttpResponseRedirect(reverse('zarzadzaj_studentami'))
    return render_to_response('oceny/zarzadzaj_studentami.html', {'req': req}, context_instance = RequestContext(request))

我意识到在某些情况下代码可能很蹩脚。我将不胜感激任何其他提示如何更好地写东西。

4

3 回答 3

1

我的代表太低,无法评论,但takes_context默认为 False,使您的分配变得多余。另外,但现在我猜,但这可能与您的问题有关。

于 2015-05-18T09:06:38.287 回答
0

寻找“CACHE_BACKEND= ????” 在您的 settings.py 文件中。该值将根据您使用的缓存机制而改变。将此注释掉并重新启动服务器。如果您的值现在正确显示,那么这是一个缓存问题。

于 2008-12-29T06:10:09.023 回答
-1

你在使用某种缓存系统吗?可能是这样。

于 2008-12-27T15:24:04.087 回答