为什么我的对象没有保存?

时间:2013-05-29 13:18:32

标签: django

为什么我的Land对象未保存?不要显示任何错误。

网址

url(r'^add-object/(?P<id>\d+)/$','app.views.add_object'),

视图

def add_object(request,id):
    a = Animal.objects.get(id=id)
    form = LandForm(request.POST, instance=a)
    if request.method == 'POST':
        if form.is_valid():
            form.animal = a.id
            form.save()
    else:
        form = LandForm(instance=a)
    return render_to_response('add_object.html',{'form':form,},context_instance=RequestContext(request))

模型

class Animal(models.Model):
    name = models.CharField(max_length=255)

class Land(models.Model):
    animal = models.ForeignKey(Animal)

形式

class LandForm(ModelForm):
    class Meta:
        model = Land

2 个答案:

答案 0 :(得分:2)

对于初学者,您正在传递LandForm Animal的实例。其次,只有在表格有效时才能保存。因此,您的表单可能无效。

答案 1 :(得分:0)

Marcin是对的。我认为您应该正确检查您提交的表格是否有效。确保您已在表单中包含{{form.field.errors}}。这将显示错误。纠正它们然后重新提交表单。

您还可以使用以下代码在html页面中打印出表单中的所有错误并进行检查。

{% for field, errors in form.errors.items %} 
    {% for error in errors %}