2014-12-19 67 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

相关问题