2012-03-15 5 views
3

일반 뷰를 사용하여 개체를 업데이트하고 있습니다.내 개체 ID를 일반 업데이트보기에서 django 1.1의 양식에 사용하려면 어떻게해야합니까?

내가 사용 해요 형태 :

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'귀하의 ​​오류가이 라인에서 온다
+0

오류 추적을 게시하십시오 – jpic

답변

5

:

vehiprepa = get_object_or_404(VehiPrepa,pk=object_id)

모델 양식에 d 에 object_id이 없습니다.

이 문제를 해결하려면 documentation을 참조하십시오. 어떤 상태 :

을 또한, 모델 객체에 바인딩 모델 양식 인스턴스는 특정 모델 인스턴스 모델 양식 방법의 액세스를 제공하는 self.instance 속성이 포함됩니다.

여기에서 바운드 인스턴스는 self.instance입니다. 그래서, 모델의 형태로 대신 get_object_or_404 라인의

vehiprepa = self.instance

이 필요합니다.

+0

Thx 많이 ... 작동합니다 ...이 페이지를 보는 것을 잊지 마십시오 .. 프랑스에서 thx ...) – laurent

+0

Thx man, great post :) – Ron