user1745580
user1745580

Reputation: 385

ModelForm. Why my form is not filled with data from model?

Why my form is not filled with data from model?

This is my model.py

class People(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=100)
    address = models.CharField(max_length=255)

This is my forms.py

from django.forms import ModelForm 

class EditForm(ModelForm):
    class Meta:
        model = People
        exclude=('user',)

views.py

def edit_data(request):
    user = request.user
    people = People.objects.get(user=user)
    form = EditForm(request.POST, instance = people)
    if request.method == 'POST':
        if form.is_valid():
            form.save()
        else:
            print 'Error'
    else:
        form = EditForm()

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

profile.html

<form action="/profile/" method="post">{% csrf_token %}
{{ form.as_p }}
</form>

Upvotes: 2

Views: 141

Answers (1)

girasquid
girasquid

Reputation: 15506

The problem is that you're redefining form in your else clause (to a new instance of your EditForm, which doesn't have the instance variable set). Remove the else (and the line under it) and you should be good to go.

Upvotes: 2

Related Questions