3

こんにちは、モデル フォームを使用してモデルを編集するためのビューを作成しています。

私のforms.pyは次のようになります:

from user_profile.models import Project
from django.forms import ModelForm


def ProjectForm(ModelForm):
    class Meta:
         model = Project

そして私のviews.py:

from django.shortcuts import render_to_response
from django.template import RequestContext
from user_profile.models import Project
from user_profile.forms import ProjectForm

def EditProject(request, project_id=None):
    """
    This view allows a user to edit details of a project.
    """
    title = u'Unirac - Edit Project'
    project = Project.objects.get(id=4)
    if request.method == 'POST':
        form = ProjectForm(request.POST)
        if form.is_valid():
            # save form
            form.save()
        else:
            return render_to_response('edit_project.html', {
                'title': title,
                'form': form,
            }, RequestContext(request))
    else:
        form = ProjectForm(instance=project)
        return render_to_response('edit_project.html', {
            'title': title,
            'form': form,
        }, RequestContext(request))

しかし、私はProjectForm() got an unexpected keyword argument 'instance'エラーが発生していますか?

インスタンスをモデルフォームに渡すことができるので、理由がわかりませんね。

どんな助けでも大歓迎です。

4

1 に答える 1

3
def ProjectForm(ModelForm):

ここに投稿するときの単なるタイプミスでない限り、問題があります。クラスではなくProjectForm関数を定義しました。

于 2012-11-01T20:23:20.330 に答える