我有一个 Django 1.3.3 应用程序。我被要求为其添加“促销代码”类型的功能。基本上当用户注册这个产品时(注意:不是在用户注册系统时),他们可以输入一个促销代码(如果他们有一个),它会给他们免费的天数。
在得到这个要求之前,我有这个产品的注册页面作为一个简单的 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,并且只需要添加此功能。