[英]Django Choices Display Values
Model.py: Model.py:
class RiskIssue(models.Model):
RISK_ISSUE_SEVERITY = (
('L', 'Low'),
('M', 'Medium'),
('H', 'High'),
)
projectRiskIssueSeverity = models.CharField("Risk/Issue Severity",
max_length=1, choices=RISK_ISSUE_SEVERITY, default='L')
View.py code: View.py代码:
cell = table.rows[2].cells[0]
formatted_status = [astatus.get_projectRiskIssueSeverity_display() for
astatus in activitylist.values_list('activityStatus', flat=True)]
cell.paragraphs[0].text = ', '.join(formatted_status)
I am getting the error code: 'unicode' object has no attribute 'get_projectRiskIssueSeverity_display'
我收到错误代码: 'unicode' object has no attribute 'get_projectRiskIssueSeverity_display'
What am I doing wrong? 我究竟做错了什么? I have tried everything except the correct answer. 除了正确的答案,我已经尝试了所有方法。 Very small TypeError problem here I assume activitylist
is a unicode object and does not need activitylist.objects before it. 这里的TypeError问题非常小,我假设activitylist
是一个unicode对象,并且在它之前不需要activitylist.objects。
The issue here is: the astatus.get_projectRiskIssueSeverity_display()
, This is not working as expected according to https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display 这里的问题是: astatus.get_projectRiskIssueSeverity_display()
,根据https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display ,此操作无法按预期工作
Note that get_FOO_display()
is an instance method on the model. 请注意, get_FOO_display()
是模型上的实例方法。 .values_list()
doesn't return any model instances, so the value won't have any get_FOO_display()
methods. .values_list()
不返回任何模型实例,因此该值将没有任何get_FOO_display()
方法。
You can use get_FOO_display()
on model instances only. 您只能在模型实例上使用get_FOO_display()
。 Use intermediate dictionary to get the display name from the pure status value: 使用中间词典从纯状态值获取显示名称:
severity_d = dict(RiskIssue.RISK_ISSUE_SEVERITY)
formatted_status = [severity_d[astatus] for astatus in
activitylist.values_list('activityStatus', flat=True)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.