2월 09, 2022

django pluralize not working

 1이 아닌 값에 s를 붙여서 복수형을 만들어주는 pluralize를 사용하려 했습니다.

전체 코드는 이러합니다. 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<h1>{{ question.question_text }}</h1>

<ul>
  {% for choice in question.choice_set.all %}
  <li>
    {{ choice.choice_text }} -- {{ choice.votes }} vote {{
    choice.votes|pluralize }}
  </li>
  {% endfor %}
</ul>

<a href="{% url 'polls:detail' question.id %}">Vote again?</a>어

 어라? 근데 

 {{
    choice.votes|pluralize }}

이 부분이 적용돼서 나오는게 아니라 원본 코드 그대로 사이트에서 표시가 됩니다.


문제를 해결하기 위해 "django pluralize does not working"  , "django pluralize is not applied"  등등으로 검색을 했는데 딱히 해답이 보이지 않습니다. 

더 간단하게 검색을 했어야 되나봅니다... django pluralize not working 이라 검색하니 스택오버플로우에서 저와 같은 에러를 겪으신 분을 찾았습니다 

https://stackoverflow.com/questions/63362950/django-template-pluralize-filter-causes-raw-text-output

space를 지워주라네요.. vscode의 prettier이 자동으로 공백을 만들어줘서 별 문제의식 없이 적용을 했던게 문제였나봅니다. 


답변을 따라서 이렇게 vote와 {{choice.votes|pluralzie}} 사이를 붙여주면 원하는 데로 작동합니다 

1
2
3
4
 <li>
    {{ choice.choice_text }} -- {{ choice.votes }}
    vote{{choice.votes|pluralize}}
  </li>