【问题标题】:How can I check if a charfield result is something specific?如何检查 charfield 结果是否是特定的?
【发布时间】:2021-09-08 01:19:19
【问题描述】:

我想检查此方法中的类别是否为玩具。方法如下:

class Product(models.Model):
    CATS = (
        ("T", "Toys"),
        ("C", "Clothes"),
        ("B", "Baby essentials")
    )
    Title = models.CharField(max_length=100)
    Description = models.TextField()
    Colours = models.CharField(max_length=200)
    Category = models.CharField(max_length=1, choices=CATS)
    Price = models.IntegerField(default=1)
    image_one = models.ImageField(upload_to='media', default='def.jpg')
    image_two = models.ImageField(upload_to='media', default='def.jpg')
    image_three = models.ImageField(upload_to='media', default='def.jpg')

我在 HTML 模板中做了什么:

{% extends "ecomm/base.html" %}
{% block content %}
{% for p in products%}
    {% if p.Category==Toys %}
       <p> {{p.Title}}</p>
       <p> {{p.Price}}</p>
       <p> {{p.Description}}</p>
    {% endif %}
{% endfor %}
{% endblock %}

【问题讨论】:

标签: python django


【解决方案1】:

我建议您将比较更改为类似这样,使用键而不是类别的描述,并将T 作为字符串:

{% for p in products %}
    {% if p.Category == 'T' %}
       <p>{{ p.Title }}</p>
       <p>{{ p.Price }}</p>
       <p>{{ p.Description }}</p>
    {% endif %}
{% endfor %}

这是因为字段Product.Category保存的是字符串值T,而不是整个标签Toys;标签Toys 由Django 代码在呈现HTML 页面时添加。

【讨论】:

  • 是的,这应该可以工作
猜你喜欢
  • 2017-12-14
  • 2017-08-18
  • 2013-05-09
  • 2014-04-13
  • 1970-01-01
  • 2021-11-10
  • 2010-10-26
相关资源
最近更新 更多