2016-08-02 2 views
0

Reservation 개체를 만드는 양식이 있습니다. 이 객체에는 필수 속성 인 customer = models.ForeignKey(User)이 있습니다.현재 사용자를 ModelForm의 특성으로 설정하는 방법은 무엇입니까?

ReservationCreationForm().save()을 사용하여 개체를 만들려면 어떻게해야합니까?

'super' object has no attribute 'save' 

당신이 무엇을 할 것입니다 : - 예외 값

def save(self,user,*args,**kwargs): 
    self.customer = user 
    super(ReservationCreationForm).save() 

그래서 난 request.user 속성과 양식을 만들 수 있지만 작동하지 :

나는 방법을 저장 덮어 쓰기를 시도했습니다?

편집

는 todor의 대답에 따르면, 나는이 저장() 자체 문제를 해결

def save(self,user,*args,**kwargs): 
    self.customer = user 
    super(ReservationCreationForm, self).save(*args, **kwargs) 

에 저장 변경 한하지만 여전히 그래서를 Reservationuser를 추가하지 않습니다 발생 예외 값 :

va_app_reservation.customer_id may not be NULL 

답변

1

.save 메서드를 올바르게. super은 오브젝트 인스턴스 인 두 번째 인수를 승인합니다. 당신의 reservation 객체가 customer이없는 이유

super(ReservationCreationForm, self).save(*args, **kwargs) 

UPDATE

당신은 reservation instancecustomer을 설정하지만, form instance로하지 않는, 즉이다.

는이 하나 시도 (그리고 return 잊지 마세요) :

def save(self, user, *args,**kwargs): 
    self.instance.customer = user 
    return super(ReservationCreationForm, self).save(*args, **kwargs) 
+0

감사하지만 여전히 예약에 사용자를 추가하지 않습니다 ... 고객이 모델에 정의되어, 나는하지 않았다 save() 메소드를 제외하고 ModelForm의 어디에서나 정의 할 수 있습니다. –

+0

@MilanoSlesarik 내 대답을 업데이트했습니다. 지금 시도해보십시오. – Todor

+0

감사합니다. –

관련 문제