【发布时间】:2017-10-10 08:10:32
【问题描述】:
我一直在努力解决这个问题,所以现在我向社区寻求帮助。
我正在使用模型在 Django 中创建一个表单,我想在一些下拉选项中添加一个随机选项。
以下是我正在使用的总体思路:
models.py
Character(models.Model):
name = models.CharField(max_length=255,unique=True)
age = models.PositiveIntegerField(default=0)
gender = models.CharField(max_length=20,choices=creation_choices.GENDERS)
race = models.CharField(max_length=500,choices=creation_choices.RACE)
creation_choices.py
GENDERS = (
('male',"Male"),
("female","Female"),
("unknown","Unknown"),
)
RACE = (
('human','Human'),
('elf','Elf'),
('dwarf','Dwarf'),
)
我想要做的是为用户添加一种选择 Random 的方法,它会返回其他值之一。我尝试了很多不同的方法,但大多数都返回了错误。当我使用 random.choice() 创建一个函数并推动它通过它似乎工作,但由于某种原因总是返回相同的值。
任何帮助将不胜感激!
【问题讨论】:
-
您应该尝试在 FormField 中使用
choices参数而不是 ModelField,它更通用,并且接受可调用以动态生成选择。 -
@KlausD。是正确的。在相应表单字段的选项中添加“随机”选项,并在表单的
clean_fieldname方法中处理该额外选项。
标签: python django forms models dropdown