2016-08-02 94 views
0

我有一個表單,它會創建一個Reservation對象。該對象有一個customer = models.ForeignKey(User) - 這是一個必需的屬性。如何將當前用戶設置爲ModelForm的屬性?

如何使用ReservationCreationForm().save()創建對象?

我試圖改寫保存方法:

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

這樣我就可以創建一個形式request.user屬性,但它不是作品 - 異常值:

'super' object has no attribute 'save' 

你會怎麼做?

編輯

根據託多爾的回答,我已經改變了保存到

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

與保存()本身解決的問題,但它仍然沒有添加userReservation所以異常值:

va_app_reservation.customer_id may not be NULL 

回答

1

您沒有撥打.save方法正確。 super接受第二個參數,它是對象實例。

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

UPDATE

您沒有設置customerreservation instance,而是一個form instance,這就是爲什麼你reservation對象沒有一個customer

嘗試與這一個,(不要忘了return):

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

謝謝,但它仍然沒有增加用戶的保留,客戶在模型中定義,我沒有在SaveForm除save()方法外的任何地方定義它。 –

+0

@MilanoSlesarik我已經更新了我的答案,現在就試試吧。 – Todor

+0

謝謝託多爾! –

相關問題