3

我正在使用通用视图来更新对象。

我正在使用表格:

class VehiPrepaClientForm(ModelForm):




class Meta:
    model = VehiPrepa
    fields = ('date_dem_prepa','carburant','ty_carburant')



def clean(self):
    cleaned_data = self.cleaned_data
    data = self.cleaned_data['date_dem_prepa']

    vehiprepa = get_object_or_404(VehiPrepa,pk=object_id)
    if data :

        vehiprepa.demande_prepa = 1
        vehiprepa.save()
        date_in = vehiprepa.date_in
        delta = data - date_in
        date_dem = date_in + delta 
        if delta.days < 2 :
            raise forms.ValidationError("Veuillez entrez une date au dela du : %s" %(date_dem) )

        if data.weekday()>= 5 :

            raise forms.ValidationError("La date choisie n'est pas valide, cela tombe un weekend")    

        #test si date demande sup a date_in et si pas samedi, ni dimanche, et si pas plus 32 vehi ce jour la



    return cleaned_data

我正在使用这个通用视图:

def vehiprepa_update (request, vehiprepa_id):

user= request.user

login = user.username
vehiprepa = get_object_or_404(VehiPrepa,pk=vehiprepa_id)

url_template_base = "base_client_washtest.html"


    response = create_update.update_object(
            request,
            form_class = VehiPrepaClientForm, 
            object_id = vehiprepa_id,
            post_save_redirect = "/washtest/vehiprepa_list/0/",
            template_name = 'washtest/vehiprepa_update.html',
            template_object_name = 'object',
            extra_context = {"url_template_base":url_template_base,"login":login,"vehiprepa":vehiprepa},)

return response

但是我有一个错误,因为我的表单上的 object_id 是未知的......我怎样才能让我的请求对象 id 在我的表单中使用干净?

谢谢

编辑:这里的错误:

未定义全局名称“object_id”

4

1 回答 1

5

您的错误来自这一行:

vehiprepa = get_object_or_404(VehiPrepa,pk=object_id)

在您的模型表单中,您没有object_id.

要解决此问题,请参阅文档;其中指出:

此外,绑定到模型对象的模型表单实例将包含一个 self.instance 属性,该属性使模型表单方法可以访问该特定模型实例。

由此我们了解到绑定实例在self.instance. 因此,在您的模型形式中,您需要

vehiprepa = self.instance

而不是get_object_or_404线。

于 2012-03-15T15:17:36.677 回答