我有两张桌子: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。页面提供有关该GEO的特定信息以及船舶清单(子表/船)。我如何参考Ship表单自动附加正确的GEO外键而不在表单中显示?
对不起...... Noob在这里。 感谢
答案 0 :(得分: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)