Django Formset.save()没有保存模型

时间:2012-05-24 11:52:40

标签: python django django-models django-forms firebird2.1

我用自己替换save方法我在哪里使用cursor.callproc(prc,params),当我在Admin中保存表单时很好,但是当我在视图中保存formset时 - 没有任何反应。

class BaseModel(models.Model):
    def save(self):
        proc_name="CLN_%s_EDIT" % self._meta.db_table
        ret=callproc(self,proc_name)
        if not ret:
            super(BaseModel,self).save()
    def delete(self):
        proc_name="CLN_%s_EDIT" % self._meta.db_table
        callproc(self,proc_name,'del')
    class Meta:
        abstract=True

def tarifs(request):
    TarifFormSet = modelformset_factory(TarifPlan)#,form=TarifPlanForm)
    if request.method == 'POST':
        formset = TarifFormSet(request.POST, request.FILES)
        if formset.is_valid():
            #IPShellEmbed()()
            formset.save()
            return HttpResponseRedirect('')
            # do something.
        #else:
            #IPShellEmbed()()
    else:
        formset = TarifFormSet()
    c={"formset": formset,}
    c.update(csrf(request))
    return render_to_response("tarifs.html",c)

2 个答案:

答案 0 :(得分:1)

我猜你的表单没有改变,并且formset.save_existing_objects()实际保存被跳过了。

答案 1 :(得分:1)

阅读this我发现解决了这个问题 - 只需添加

cursor.connection.commit()

之后

cursor.callproc()