Hi I am crating a view for editing a model using model forms.
My forms.py looks like:
from user_profile.models import Project
from django.forms import ModelForm
def ProjectForm(ModelForm):
class Meta:
model = Project
And my 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))
But I’m getting a ProjectForm() got an unexpected keyword argument 'instance' error?
I can’t figure out why, as you can pass instance to a model form, can’t you?
Any help would be much appreciated.
Unless this is just a typo when posting it here, there’s your problem.
You’ve defined a ProjectForm function, not a class.