【发布时间】:2017-01-24 12:48:24
【问题描述】:
如果我尝试在 django 表单中添加一个新对象,我如何将初始值传递给这个新表单?
我知道如何在表单 init 上设置初始值,但我不知道如何在新表单中执行它
有什么帮助吗?enter code here
Model A
X = CharField()
Y = ForeignKey(ModelB)
Model B
Z = CharField()
设置 X 后,我会保存模型。 我能够在 ModelA 表单中添加新对象 Y,这将 打开 ModelB 的新表单。如何将 X 的值传递给我刚刚打开的这个新表单? 我需要 X 对 Z 进行过滤查询,但我找不到解决方案
编辑:
class PrecoPorEpocaForm(forms.ModelForm):
class Meta:
model = Preco_por_epoca
fields = ('epoca',)
def __init__(self, *args, **kwargs):
super(PrecoPorEpocaForm, self).__init__(*args, **kwargs)
#if kwargs['initial']['epoca_hotel']:
# print kwargs['initial']['epoca_hotel']
# self.fields['epoca'].queryset = Epoca.objects.filter(hotel=s)
#print "TTTTTTTTTTTTTTT"
class TabelaPrecoForm(forms.ModelForm):
class Meta:
model = TabelaPrecos
fields = ('client', 'year','hotel', 'seasonprice', 'teste')
def __init__(self, *args, **kwargs):
super(TabelaPrecoForm, self).__init__(*args, **kwargs)
if self.instance.hotel != None:
self.fields['seasonprice'].queryset = Preco_por_epoca.objects.filter(epoca__hotel = self.instance.hotel)
【问题讨论】:
-
基本上,您需要通过对新表单的请求传递某种对象 ID。但是,您需要提供更多详细信息,以便我们提供帮助......
-
这就是为什么我一直卡到现在,我不知道如何将实例 ID 传递给新表单
-
你能展示你的views.py吗?您如何退出第一个表单会很有趣。
-
刚刚编辑了问题以更好地解释情况,我正在使用 Django-Admin 视图
标签: python django forms django-models django-forms