Django Choices Ссылка в представлении
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 здесь я предполагаю
2 ответа
Вы не можете использовать get_FOO_display() со строковым значением, как вы пытаетесь это сделать. Вам понадобится экземпляр модели для его работы. Как вы понимаете, то, на что переводит ваш код, выглядит примерно так:
'L'.get_projectRiskIssueSeverity_display()
Вот откуда возникает ошибка "без атрибута".
Если вы просто хотите получить список возможных значений, вам лучше использовать RiskIssue.RISK_ISSUE_SEVERITY
непосредственно из представления и преобразования его в список или все, что вам нужно.
Model.get_FOO_display() в документации говорит, что в качестве имени поля в качестве имени поля должно быть указано FOO, а в вашем случае имя поля - ProjectRiskIssueSeverity, а не risk_issue_severity.
и объекты, кажется, отсутствуют в списке активности.