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代码:
cell = table.rows[2].cells[0]
formatted_status = [astatus.get_risk_issue_severity_display() for astatus in activitylist.values_list('activityStatus', flat=True)]
cell.paragraphs[0].text = ', '.join(formatted_status)
我收到错误代码:'unicode'对象没有属性'get_risk_issue_severity_display'
我做错了什么?除了正确的答案,我已经尝试了一切。 这里非常小的TypeError问题我假设
答案 0 :(得分:1)
文档中的Model.get_FOO_display()应该有FOO作为字段名称,因为你的案例字段名称中的FOO是projectRiskIssueSeverity而不是risk_issue_severity。
并且活动列表中似乎缺少对象。
https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display
答案 1 :(得分:1)
您不能将get_FOO_display()与字符串值一起使用,就像您尝试的那样。您需要一个模型实例才能工作。正如您所拥有的那样,您的代码所转换的内容就像:
'L'.get_projectRiskIssueSeverity_display()
这就是“无属性”错误的来源。
如果您只想要一个可能值的列表,最好直接从视图中使用RiskIssue.RISK_ISSUE_SEVERITY
并将其转换为列表或任何您需要的值。