作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 django 模型之一中有两个 IntegerChoices 子类,它们定义了 api 的票证优先级。我希望当优先级和状态在我的网页上呈现时显示标签,但是当使用 api 发送与标签对应的整数时。
到目前为止,这是我的代码:
class Ticket(models.Model):
class Statuses(models.IntegerChoices):
OPEN = 2, 'Open'
PENDING = 3, 'Pending'
RESOLVED = 4, 'Resolved'
CLOSED = 5, 'Closed'
class Priorities(models.IntegerChoices):
LOW = 1, 'Low'
MEDIUM = 2, 'Medium'
HIGH = 3, 'High'
URGENT = 4, 'Urgent'
priority = models.IntegerField(default=Priorities.LOW, choices = Priorities.choices)
status = models.IntegerField(default=Statuses.OPEN, choices=Statuses.choices)
然后我尝试通过访问我的应用程序中的标签
<b>Priority: </b> {{ ticket.priority.label }} <br>
<b>Status:</b> {{ ticket.status.label }}
但什么也没有出现。新 IntegerChoices 类的 Django 文档似乎非常少,并且不清楚标签功能是如何工作的。
OPEN = 2, _('Open')
但是后来我收到一条错误消息,说“名称 '_' 未定义”
from django.utils.translation import gettext_lazy as _
从那时起,为了从模板访问标签,我在我的票证模型中实现了 2 个 get 函数
def get_status(self):
return self.Statuses(self.status).label
def get_priority(self):
return self.Priorities(self.priority).label
然后在模板中抓取它们,你可以这样做:
<div>
{{ ticket.get_priority }}<br>
{{ ticket.get_status }}
</div>
最佳答案
无需添加获取标签的函数。使用 get_FOO_display
方法工作正常。因此,在您的情况下,您将在模板上使用 {{ ticket.get_priority_display }}
获得“人类可读”的值(value)。见 docs .
关于python - 如何为 Django models.IntegerChoices 添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63710943/
我的 django 模型之一中有两个 IntegerChoices 子类,它们定义了 api 的票证优先级。我希望当优先级和状态在我的网页上呈现时显示标签,但是当使用 api 发送与标签对应的整数时。
我是一名优秀的程序员,十分优秀!