django - 模型形式。为什么我的表单没有填充模型中的数据?

标签 django

为什么我的表单没有填充模型中的数据?

这是我的模型.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',)

View .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))

个人资料.html

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

最佳答案

问题是您在 else 子句中重新定义 form (到 EditForm 的新实例,这不会设置了instance变量)。删除 else (及其下面的行),您就可以开始了。

关于django - 模型形式。为什么我的表单没有填充模型中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12899407/

相关文章:

Django 的 manage.py shell 不会缩进

python - Django结合3个查询集

python - 尽管使用 CORS_ALLOW_CREDENTIALS = True,但 COOKIES 在 DJANGO 的子域上不可用

python - 在 alwaysdata.com 上部署 Django

django - 如何使 reverse_lazy() 也懒惰的参数?

javascript - 如何使用 axios 向 django 发送空对象(图像)

python - 如何自定义 django admin 的外观

django - 如何将 CreateView 与 ModelForm 一起使用

Django - 如何让用户登录(ListView 中的 get_queryset)

找不到与Django ForeignKey问题相关的类