首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django中将模型中的元组字段显示到模板中?

如何在Django中将模型中的元组字段显示到模板中?
EN

Stack Overflow用户
提问于 2021-04-23 18:04:02
回答 2查看 220关注 0票数 0

我刚来Django,伙计们,所以请对我手下留情…

让我详细说明标题问题所说的内容。基本上我有这个模型...

代码语言:javascript
复制
    class Meta:
        verbose_name_plural = 'Digital Media'

    CATEGORY_CHOICES = (
        ('icon_sets', 'Icon Sets'),
        ('brand_logos', 'Brand Logos'),
        ('web_banners', 'Web Banners')
    )
    name = models.CharField(max_length=20, choices=CATEGORY_CHOICES)

    SIZE_CHOICES = (
        ('1616', '16 x 16 pixels'),
        ('3232', '32 x 32 pixels'),
        ('6464', '64 x 64 pixels'),
        ('128128', '128 x 128 pixels'),
        ('256256', '256 x 256 pixels')
    )
    sizes = models.CharField(max_length=20, choices=SIZE_CHOICES)

    def __str__(self):
        return self.name

这幅图..。

代码语言:javascript
复制
def product_detail(request, product_id):
    """ A view to show individual product details """

    print_media = Print_Media.objects.all()
    digital_media = Digital_Media.objects.all()

    product = get_object_or_404(Product, pk=product_id)

    print(product, print_media, digital_media)
    context = {
        'product': product,
        'print_media': print_media,
        'digital_media': digital_media,
    }
    return render(request, 'products/product_detail.html', context)

所以“如果”上面的代码一切正常,有人能帮我把模型中的字段“size”放到一个模板上吗?因为我自己做不到这一点--这是我到目前为止一直在尝试的……

代码语言:javascript
复制
{% with product.is_print_media as p %}
    {% if p %}
        <div class="col-12">
            {{ p.sizes }}
            <p><strong>Size:</strong></p>
            <select class="form-control rounded-0 w-50" name="product_size" id="id_product_size">
                <option value="{{ p.sizes }}"></option>
                <option value=""></option>
                <option value="" selected></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </div>
    {% endif %}
{% endwith %}

非常感谢您在这方面提供的任何帮助:)

再说一次--对新手不要太客气……

EN

回答 2

Stack Overflow用户

发布于 2021-04-23 18:42:54

在django模板中,选项将如下所示。它将返回字段的可读值,

{{ p.get_sizes_display }}。

如果这对你有帮助,请投票支持!

票数 0
EN

Stack Overflow用户

发布于 2021-11-12 08:40:14

对于设置了选项的每个字段,对象都将有一个get_FOO_display()方法,其中FOO是字段的名称。此方法返回字段的“人类可读”值。所以试试吧:

代码语言:javascript
复制
{{p.get_sizes_display}}

再举一个例子:

代码语言:javascript
复制
from django.db import models

class Person(models.Model):
    SHIRT_SIZES = (
        ('S', 'Small'),
        ('M', 'Medium'),
        ('L', 'Large'),
    )
    name = models.CharField(max_length=60)
    shirt_size = models.CharField(max_length=2, choices=SHIRT_SIZES)

我们可以使用(p作为一个人)访问模板中的小、中和大:

代码语言:javascript
复制
{{p.get_shirt_size_display}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67227949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档