0

私は次のフォームを持っています:

class SourceForm(forms.ModelForm):
    class Meta:
        model = Source
        widgets = {
            'category_re': forms.TextInput(),
            'thumb_re': forms.TextInput(),
            'movie_re': forms.TextInput()
        }

    def clean_url(self):
        data = self.cleaned_data['url']
        return helpers.url_fix(data)

および次のビュー:

def source_form(request, id):
    source = get_object_or_404(Source, pk=id)
    form = SourceForm(request.POST or None, instance=source)

    if form.is_valid():
        form.save()

    return render_to_response('source/form.html', {'form': form, 'source': source},
        context_instance=RequestContext(request))

そして、私には問題があります。クリーンアップされたフィールドの値はurlフォームに表示されません。変更されていない古い値しか表示されませんが{{ form.cleaned_data }}、テンプレートに追加しようとすると、正しい値が表示されます。なぜそうなったのですか?どうすれば修正できますか?

TIA!

4

1 に答える 1

2

これは、がではなくデータをform使用しているためです。:の後に変数を再割り当てしてみてくださいrequest.POSTcleaned_dataformsave()

def source_form(request, id):
    source = get_object_or_404(Source, pk=id)
    form = SourceForm(request.POST or None, instance=source)

    if form.is_valid():
        source = form.save()
        form = SourceForm(instance=source)

    return render_to_response('source/form.html', {'form': form, 'source': source},
        context_instance=RequestContext(request))
于 2012-12-26T18:58:34.853 に答える