2014-12-19 65 views
0

我有兩個表:GEO和SHIP。裏面的船把一個外國人留給Geo。 我有forms.py顯示:參考父表在沒有用戶輸入的情況下

class Geo(forms.ModelForm): 

    class Meta: 
     model = Geo 
     exclude = [] 


class Ship(forms.ModelForm): 

    class Meta: 
     model = Ship 
     exclude = ['ShipClass', 'Geo'] 

我有一個顯示的GEO列表的HTML頁面,然後使用挑選一個地球。一頁顯示關於該GEO的具體信息,以及船舶列表(子表/船)。我如何參考Ship表單自動附加正確的GEO外鍵而不在表單中顯示?

對不起... Noob here。 感謝

回答

0

覆蓋save()方法在ShipForm,並從您的視圖與geo參數調用它:

class ShipForm(forms.ModelForm): 

    class Meta: 
     model = Ship 
     exclude = ['ShipClass', 'Geo'] 

    def save(self, geo): 
     ship = super(ShipForm, self).save(commit=False) 
     ship.geo = geo 
     ship.save() 
     return ship 

或者你可以用commit=False同樣的伎倆右視圖:-)

if form.is_valid(): 
    ship = form.save(commit=False) 
    ship.geo = geo 
    ship.save() 
    return redirect(ship) 
+0

絕對真棒。我使用了第二面,因爲我更容易掌握。我很感激。 – arcee123 2014-12-19 07:02:23

相關問題