在我的应用程序中,我在表单中保留一些选项。选项是复选框输入,用户可以单击并保存选项。在数据库中保存的选项存储为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中这样做。
答案 0 :(得分:4)
为了在django中检索字典的值,您可以使用以下语法:
ReporForm.get_optons_display()
例如,如果您想检查数据库查询是“全部”还是键“5”,您可以这样做:
if ReporForm.get_optons_display() == 'ALL':
#do something
摘录示例:
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 }}'