在模板中显示表单数据

时间:2013-06-14 13:53:14

标签: django django-models django-forms django-templates

在我的应用程序中,我在表单中保留一些选项。选项是复选框输入,用户可以单击并保存选项。在数据库中保存的选项存储为1,2,3等整数。如何查询保存数据库中的值,并将其显示在模板中作为相应的选项。

forms.py

OPTIONS = (
    ('1', 'Today'),
    ('2', 'This Week'),
    ('3', 'This Month'),
    ('4', 'This Year'),
    ('5', 'All'),
 )

class ReporForm(forms.ModelForm):
    optons = forms.ChoiceField(widget=forms.Select(), choices=OPTIONS,required=False, initial=0)

模板

{{ reportform.as_p}}

此处,如果用户选择“本周”作为选项,则在数据库中将保存“本周”“2”的值。

通常,如果我从表中查询数据,它将值呈现为“2”。但我希望它在模板中显示“本周”。我没有以这种方式看到任何教程或博客。 / p>

我不知道如何在Django中这样做。

1 个答案:

答案 0 :(得分:4)

为了在django中检索字典的值,您可以使用以下语法:

ReporForm.get_optons_display()

例如,如果您想检查数据库查询是“全部”还是键“5”,您可以这样做:

if ReporForm.get_optons_display() == 'ALL':
    #do something

Django Docs

摘录示例:

Views.py

    #Query your database to retrieve your instance of 'ReporForm'
    #I will assume there is a primary key of some type (Reportcode)
    foo = ReporForm.objects.get(ReportCode = 1234)

#Pass foo to the context
context = {'foo':foo}
#Send this context to your render_to_response so it goes to template

reportform.html

<b>You have selected the option :</b> '{{ foo.get_optons_display }}'