1

アプリには、db にエントリを表示するフォームを含む 2 つの templatetag があります。データを変更するか、db に新しいエントリを追加すると、フォームに古いデータが表示されます。管理パネルでは、すべてが正しい(更新されている)。サーバーを再起動すると(つまりmanage.py runserver)、フォームに更新されたデータベースエントリが表示されます。フォームに更新されたデータを表示する方法は? Chriss

について編集: ファイル: :



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)

file: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 に答える