将Django Choices表单字段的详细名称传递给查看上下文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Django Choices表单字段的详细名称传递给查看上下文相关的知识,希望对你有一定的参考价值。

我正在构建一个包含许多choices字段的简单订单。每个选项字段都有很多选项..表单效果很好,它重定向到感谢页面,通过条带传递上下文,账单并向管理员发送通知电子邮件。但是当我收到新订单的电子邮件时,我会获得不同选择字段的金额,但如果没有详细标签,则不知道它属于什么。下面是我的一个选择字段和感谢页面上的返回值的示例。

下面是样本选择字段

MERCHANDISE_ORDER = (
    ('10000', 'Flag with 5X7 Certificate'),
    ('2000', 'MSMA Hat'),
    ('500', 'Plaque Certificate'),
    ('500', 'Flag and Plaque Certificate'),
)

模板标签

...
<strong>Merchandise Order:</strong> ${{ merchandise_order }} <br>
...

我的感谢页面和电子邮件中返回的值

...
Merchandise Order: $5 
...

正如你所看到的那样,有4种选择,所以如果我能得到Merchandise Order: Plaque Certificate - $5的返回值或者类似和冗长的东西,那将会很棒。

我没有使用模型表格,因此我可以控制样式,我使用{{ form.merchandise_order }}等手动将表单字段添加到我的模板中。谢谢。

答案

我假设你的模型名称some_field中有这样的字段;

some_field = models.CharField(max_length=5, choices=MERCHANDISE_ORDER)

您可以从这样的选择中获得详细的名称; get_some_field_display()

queryset.get_some_field_display()

在模板中;

{{queryset.get_some_field_display}}

您可以查看here的文档。

以上是关于将Django Choices表单字段的详细名称传递给查看上下文的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django-Countries中使用Django Filter的语言选择的详细名称

将 django 表单中的布尔模型字段显示为单选按钮而不是默认复选框

Django内置表单字段

将参数传递给 django 表单

在 Django 表单中动态显示和隐藏字段

使用更改 django 模板中表单字段的名称属性