공백으로 남겨진 Decimal Field에 대해 Django가 "None"대신 아무 것도 표시하지 않습니까?Django DecimalField는 빈 값 대신 "None"을 반환합니다.
내 템플릿에는 특정 필드의 모든 값 목록이 표시됩니다. 각 값은 해당 값으로 필터링 된 쿼리의 결과를 표시하는 페이지에 하이퍼 링크됩니다. 그러나 null 값을 가진 항목이 있기 때문에 내 목록에는 실제 DecimalField 항목이 포함되어 있으며 비어있는 항목은 모두 "없음"으로 표시됩니다. 사용자가 None을 클릭하면 django는 문자열을 사용하여 DecimalField를 쿼리 할 수 없으므로 유효성 검사 오류를 발생시킵니다.
if 문을 Nones에 대한 소수 필드의 모든 인스턴스를 검사하고 건너 뛸 수 있지만 우아한 해결책은 아닙니다. 어떤 충고? 값 목록을 필터링하지 않으려면
{% for item in choices %}
<a href={% url app_views.field_choice item %}>{{ item }}</a><br>
{% endfor %}
글쎄, 아무도 한 번 나타나지 않기 때문에 나는 사용자에게 보이지 않는 빈 링크 하나만 얻습니다. 루프에 1 if 문을 추가해도 문제가 없지만 동적으로 반복하는 대신 개별 필드를 구체적으로 참조하도록 템플릿을 확장하면 모든 필드에 대해 if 문을 작성해야합니다. 없음을 포함 할 수있는 참조. –
링크가 비어 있기 때문에 사용자가 볼 수없는 링크를 믿는 것은 매우 나쁜 습관입니다. 그들은 여전히 거기에 있으며, 사용될 때의 상황이 많습니다. –
동의. 필자는리스트에서 None을 필터링하기 위해 뷰를 변경했습니다. 그런 다음 사전 필터링되지 않은 템플릿에 default_if_none 필터를 사용했습니다. –