我正在尝试创建一种表单,用户可以在其中填写语言,描述和语言级别(中级,高级...)。
语言模型:
class Language(models.Model):
shortcut = models.CharField(max_length=6)
name = models.CharField(max_length=50)
first_level_price = models.FloatField() # Basic
second_level_price = models.FloatField() # Intermediate
third_level_price = models.FloatField() # Advanced
def __str__(self):
return self.shortcut+': '+self.name
对于每种语言,存在三个级别和价格(first_level_price
,second_level_price
,third_level_price
)。
现在,我希望用户填写表格。形式之一应该是级别。用户只需选择“基本”,“中级”或“高级”即可。根据此选择,将计算价格。
因此,如果user
选择“基本”,则价格会根据first_level_price
语言而定。
我已经尝试了很多方法,但是没有人工作。
level = forms.ChoiceInput(choices=('Basic','Intermediate','Advanced'))
您可以像这样更新模型:
class Language(models.Model):
PRICE_CHOICES = (
('first_level_price', 'Basic'),
('second_level_price', 'Intermediate'),
('third_level_price', 'Advanced'),
)
first_level_price = models.FloatField() # Basic
second_level_price = models.FloatField() # Intermediate
third_level_price = models.FloatField() # Advanced
shortcut = models.CharField(max_length=6)
name = models.CharField(max_length=50)
level = models.CharField(max_length=50, choices=PRICE_CHOICES)
def __str__(self):
return self.shortcut+': '+self.name
现在,您可以ModelForm
使用此模型创建一个,它应该可以按您期望的方式工作。
当用户选择first_level_price
akaBasic
成员身份时,您现在可以从first_level_price
字段中获取价格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句