私の質問は、関連モデルのIDではなく、関連モデルから指定されたフィールドを使用するカスタムモデルフォームを作成する方法はありますか?
明確にするために、私が次の2つのモデルを持っている場合:
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の対応するインスタンスに解析します。私がこのようにしたい理由は、ユーザーの観点からは、「id」ではなくModelOneの名前(ModelTwoインスタンスを更新する場合)を処理する方がはるかに直感的であると信じているためです。
私がこれを行う方法の提案はありますか?