Django如何创建“偏好顺序Q”是一种调查表

时间:2014-05-26 09:38:22

标签: django django-forms

是否可以使用Django Forms模块获得一个偏好顺序问题?要求用户为每个答案选择评级?在下面的示例中,我希望用户必须对最佳答案进行评分,例如:当然,如果我还可以控制评级量表中的指标的内容和类型,那将是很好的。

下面是使用MultipleChoiceField的示例,但对于我需要构建的许多问题,这还不够。

from django import forms

#In order of preference which news medium do you access most often?
    RADIO = 'Radio' 
    TV = 'TV'
    NEWSPAPERS = 'Newspaper' 
    ONLINE = 'Online'
    NONE = 'None'

    NEWS_ACCESS = (          
        (RADIO, 'Radio'),
        (TV, 'TV'),
        (NEWSPAPERS, 'Newspaper'), 
        (ONLINE, 'Online'),
        (NONE, 'None'),
                   )

    news_access = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=NEWS_ACCESS, label = 'Which news mediums do you access most often? Select all the apply.')

1 个答案:

答案 0 :(得分:1)

在这种情况下,每个新闻访问类型都有一个单独的字段。

class MyForm(forms.Form):
    radio = forms.IntegerField(min_value=1, max_value=5)
    tv = forms.IntegerField(min_value=1, max_value=5)
    newspapers = forms.IntegerField(min_value=1, max_value=5)
    online = forms.IntegerField(min_value=1, max_value=5)
    none = forms.IntegerField(min_value=1, max_value=5)

这将强制用户为每个字段提供值。然后,您需要使用clean_field()clean()形式的方法来确保它们输入您期望的值,但这超出了此问题的范围。