【发布时间】:2018-07-25 21:38:03
【问题描述】:
我有一个看起来像这样的模型:
models.py
class BHA_List(models.Model):
well = models.ForeignKey(WellInfo, 'CASCADE', related_name='bha_list')
bha_number = models.CharField(max_length=100)
class BHA_Drill_Bit(models.Model):
bha_number = models.ForeignKey(BHA_List, 'CASCADE', related_name='bha_drill_bit')
bit_type = models.CharField(max_length=111)
class BHA_overall(models.Model):
bha_number = models.ForeignKey(BHA_List, 'CASCADE', related_name='bha_overall')
drill_str_name = models.CharField(max_length=111)
class BHA_Motor(models.Model):
bha_number = models.ForeignKey(BHA_List, 'CASCADE', related_name='bha_drill_bit')
motor_type = models.CharField(max_length=111)
BHA_List为父模型,其余为ForeignKey关联的子模型。截图是我要创建的页面
所以,我想使用model = BHA_List 中的一个实例生成一个基本页面。在此页面中,我想通过ForeignKey 关系编辑与BHA_List 相关的模型实例。
我目前有一个看起来像这样的视图,但它是错误的:
class BHA_UpdateView(UpdateView):
model = BHA_List
pk_url_kwarg = 'pk_alt'
form_class = BHA_overall_Form
通过设置model = BHA_List,我能够获得BHA_List 中的一个实例,并从中生成url。现在我的views 正确返回BHA_List 中的一个实例:BHA 1
我试图通过设置form_class = BHA_overall_Form 来编辑子模型。但这并没有做任何事情,尽管它在用户端显示了表单字段。编辑并单击Submit 按钮后,更改不会保存在数据库中。有人指出这是因为我在UpdateView中的模型和form不匹配,因为我设置了model = BHA_List,而是form_class = BHA_overall_form。
我该如何解决这个问题?其他人也指出使用多个视图,但我真的不知道该怎么做,因为我对 Django 很陌生。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: django django-models django-forms django-views