【问题标题】:Why my object is not saved? [duplicate]为什么我的对象没有保存? [复制]
【发布时间】:2013-05-29 13:18:31
【问题描述】:

为什么我的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

【问题讨论】:

  • LandLandForm 中是否有更多属性?您的表单是否有字段可供选择 animal
  • @Rohan 没有。我将animal 添加到exclude。土地模型也有date字段。

标签: django


【解决方案1】:

首先,您将传递LandForm 一个Animal 的实例。其次,您仅在表格有效时才保存。因此,您的表单可能无效。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多