我试图在Django中创建一个验证表单,向用户提供一个选项列表,其中只有一个是有效的。你知道吗
例如,如果用户最喜欢的比萨配料包括菠萝和罗克福-
What is your favourite pizza topping?
- Ham
- Pineapple
- Anchovie
每次选择的顺序和值都应该是随机的,但总是有一个有效答案。例如,如果用户刷新页面,表单可能是-
What is your favourite pizza topping?
- Mozarella
- Ham
- Roquefort
我如何建立这样一个形式?我被淹没了。我们必须在某处记录一个特定表单的有效选项:
编辑-我们将比萨配料列表存储在数据库中-
class UserProfile(Model):
favourite_pizza_toppings = ManyToManyField(PizzaTopping)
我想要的是一种形式,比如-
class QuestionForm(Form):
questions = ChoiceField(choices=(('a', RANDOMLY_CHOSEN_OPTION_A),
('b', RANDOMLY_CHOSEN_OPTION_B),
('c', RANDOMLY_CHOSEN_OPTION_C)))
其中,每次实例化时,所有RANDOMLY_CHOSEN_OPTION
都是从PizzaTopping.objects.all
中随机选择的,只有一个是PizzaTopping
,也在UserProfile.favourite_pizza_toppings
中。你知道吗
当用户发布表单时,我们需要验证表单,这是一个棘手的问题。我们必须记录每个实例化形式的有效选择(a
、b
或c
)。我们怎么做?你知道吗
您需要在forminit方法中建立选项,否则每次加载页面时,表单元素选项都是相同的(它们不会改变)。你知道吗
相关问题 更多 >
编程相关推荐