python - 在 Django 模板 HTML 中访问元组中的第一个值
问题描述
我正在 Django 中创建一个网站,需要显示用户从选择字段中选择的值 - 它们 user_status
存储在元组中。第一个和第二个值相同,但它们可以是“会员”或“专家”。
起初我在我的 HTML 中尝试了这个:
{{ user.user_status }}
结果是这样的:
('Member', 'Member')
我想要的是这样的:
Member
接下来,我尝试了
{{ user.user_status.Member }}
结果什么都没有:
最后我尝试了
{{ user.user_status.Member.0 }}
结果是第一个字符('Member', 'Member')
(
如何访问此元组的第一个或第二个值并将其显示在我的 HTML 中?
编辑1:
我的模型:
class CustomUser(AbstractUser):
__USER_STATUS = [('Member','Member'), ('Expert','Expert')]
user_status = models.CharField(
max_length = 20,
choices = __USER_STATUS,
default = __USER_STATUS[0], # 'Member'
)
phone_number = models.CharField(null=True, blank=True, max_length=30)
编辑2:
奇怪的事情正在发生……
当我使用: {{ user.user_status }}
它显示('Member', 'Member')
在由 Visual Studio 代码打开的 Internet 窗口中。
但它显示Member
在 Firefox 和 Chromium 中。
为什么是这样?
为什么相同的代码在不同的浏览器中显示不同的结果?我知道有时网页的外观会发生这种情况,但这是内容的根本区别。
谢谢您的帮助!
解决方案
我相信数据实际上不是一个元组,而是一个字符串。因此,我将制作元组并从模型中获取元组值,然后通过user_status_from_tuple
.
模型.py
class CustomUser(AbstractUser):
....
def user_status_from_tuple(self):
user_status = eval(self.user_status)
return user_status[0]
在您的模板中:
{{ user.user_status_from_tuple }}