Skip to main content
 首页 » 编程设计

python之View 中的 Django Choices 引用

2024年10月25日21cmt

模型.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') 

查看.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 问题

请您参考如下方法:

您不能像您尝试的那样将 get_FOO_display() 与字符串值一起使用。您需要模型的一个实例才能工作。正如你所拥有的,你的代码正在翻译成这样的东西:

'L'.get_projectRiskIssueSeverity_display() 

这就是“无属性”错误的来源。

如果您只想要一个可能值的列表,最好直接从 View 中使用 RiskIssue.RISK_ISSUE_SEVERITY 并将其转换为列表或您需要的任何内容。