【发布时间】:2011-01-03 09:11:57
【问题描述】:
假设我有这样的模型:
from django.db import models
USER_TYPE_CHOICES = (
(1, 'Free'),
(2, 'Paid'),
)
class Account(models.Model):
name = models.CharField(max_length=20)
user_type = models.IntegerField(default=1, choices=TYPE_CHOICES)
如果用户是“付费”类型,我想在模板中测试 user_type 以显示特殊部分。
我想做一些类似于 C #define 或常量的事情来测试 user_type。所以我的模板代码看起来像:
{% ifequal user_type PAID_ACCOUNT %}
而不是使用像这样的幻数:
{% ifequal user_type 2 %}
在 Django 中最优雅的方法是什么?我应该只定义一个带有 FREE_ACCOUNT 和 PAID_ACCOUNT 的自定义上下文处理器吗?也许是模板标签?
谢谢!
【问题讨论】:
标签: django django-models django-templates