Django 1.3.3 アプリケーションがあります。「プロモーション コード」タイプの機能を追加するように依頼されました。基本的に、ユーザーがこの 1 つの製品にサインアップするとき (注: システムのユーザー登録時ではありません)、プロモーション コードを入力することができます (お持ちの場合)。
この要件が与えられる前に、私はこの製品の登録ページを単純な ModelForm として持っていました。モデルに必要な変更を加え、「メンバー」モデルから新しいプロモーション モデルに外部キー フィールドを追加しました。
- id (整数)
- promo_code models.CharField(max_length=20)
number_of_days = models.IntegerField()
def __unicode__(self): return u'{}'.format(self.promo_code)
フォームに追加すると、すべてのプロモーション コードを含むドロップダウン ボックスが表示されます。しかし、それは私が望むものではありません。コードを持っていて、それをテキスト ボックスに入力してもらいたいのです。次に、フォーム検証の一環として、有効なコードかどうかを確認します。コードをまったく持っていない可能性があることを忘れないでください (そのため、リストから選択するだけにはなりたくないのです)。
Django ModelForm でこのような要件を実装する最良の方法は何ですか?
注: バックアップして完全にカスタム フォームを作成できることはわかっていますが、すでに ModelForm で動作するページがあり、この機能を追加する必要があるだけです。