我的问题是:有没有办法创建自定义模型表单,该表单将使用相关模型中的指定字段而不是相关模型的 id?
澄清一下,如果我有以下两个模型:
class ModelOne(models.Model):
id = models.AutoField(primary_key = True)
name = models.CharField(unique = True, blank = False, null = False)
class ModelTwo(models.Model):
id = models.AutoField(primary_key = True)
parent = models.ForeignKey(ModelOne, blank = False, null = False)
attribute_1 = models.CharField(blank = False, null = False)
attribute_2 = models.IntegerField(blank = False, null = False)
现在,如果我使用 ModelForm 在 ModelTwo 上创建一个 UpdateView,那么父字段将预填充来自 ModelOne 的相应 id。但是我希望它显示 ModelOne 的 name 属性,然后在表单提交时将唯一名称(ModelOne)解析为 ModelOne 的相应实例。我想这样做的原因是,我相信从用户的角度来看,处理 ModelOne 的名称(更新 ModelTwo 实例时)而不是它的“id”更直观。
关于我如何做到这一点的任何建议?