我一直在挑选自己的大脑试图解决这个问题,所以现在我转向社区寻求帮助。
我正在使用模型在Django中创建一个表单,我想在一些下拉选项中添加一个Random选项。
以下是我正在使用的一般概念:
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()创建一个函数并通过它推送它似乎工作,但由于某种原因总是返回相同的值。
非常感谢任何帮助!
答案 0 :(得分:0)
将(None,'Random')
添加到选择集和有问题的模型字段中
default=select_random_gender
和default=select_random_race
以及blank=False, null=False
。
声明这些功能:
def select_random_gender():
selection = random.choice(GENDERS)[0]
return selection if selection else select_random_gender()
def select_random_race():
selection = random.choice(RACE)[0]
return selection if selection else select_random_race()