2012-10-15 44 views
2

爲什麼我的表單沒有填充模型的數據?ModelForm。爲什麼我的表單沒有填充模型的數據?

這是我model.py

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

這是我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> 

回答

2

問題是,您正在else子句中重新定義form(到EditForm的新實例,該實例沒有instance變量集)。刪除else(和它下面的行),你應該很好去。

+0

仍然不起作用 – user1745580

+0

您刪除了行:'else:form = EditForm()'? – girasquid

+0

@ user1745580 girasquid是正確的。如果你做到了,並且仍然不能像你說的那樣工作,那麼請更新你的問題,並且我們會從那裏拿走它。 – rantanplan

相關問題