{% if %}
부분에서 문자열 형식의 숫자를 다른 형식과 비교하고 싶습니다. slice
필터를 사용해 보았지만 작동하지 않습니다. 템플릿에 전달 된 모든 숫자는 장고의 문자열로 해석되며 템플릿에서 문자열을 숫자로 변환 할 방법이 없다고 생각하기 때문에 문자열을 비교해야합니다.Django - 데이터 유형에 따른 템플릿의 if 조건 비교
파티션 정보를 받고 템플릿 (<table>
)으로 보냅니다. 파티션의 사용률이 90 % 이상이면 백분율이 빨간색이어야합니다.
컴퓨터에 파티션이 두 개 이상 있으므로 행의 조건부 스타일이 독립적이므로보기가 아닌 렌더링 할 때 결정하는 것이 좋습니다.
백분율은 정수 (89
)로 표시되며 십진수가 아닙니다 (0.7
). 십진수이면 {% if '0.9' in value %}
을 사용할 수는 있지만 그렇지 않습니다. ---------------------- (다른 데이터 파티션에 대해입니다 part.0
part.4
에)
<tbody>
{% for part in partitions %}
<tr>
<td>{{part.0}}</td> <td>{{part.1}}</td> <td>{{part.2}} GB </td> <td>{{part.3}} GB </td> <td>{{part.4}} GB </td>
{% if part.5|slice:"0:1" == "8" or part.5|slice:"0:1" == "9" %}
<td><font color="red">{{part.5}}%</font></td>
{% else %}
<td>{{part.5}}%</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
:
는이 같은 내 템플릿을 EDIT 1 ----------------------------
part
sdiskpart.device
는, sdiskpart,mountpoint
를 추가, 및 psutil.disk_partitions('some_partition')
psutil.disk_usage("some_mountpoint")
에서 얻은 정보와 함께 목록 , sdickusage.total
, sdiskusage.free
, sdiskusage.free
, sdiskusage.percent
. 그것은 다음과 같습니다 :
['/dev/sda1', '/boot', 'xxxxxxxxx', 'xxxxxxxxx', 'xxxxxxx', '20.9']
---------------------- EDIT 1 --------------- -------------
이제 불만은 없지만 데이터가 조건과 일치 할 때도 빨간색으로 변하지는 않습니다.
목표를 달성하려면 어떻게해야합니까?
는PS : 당신은 또한 경우 표현식에 필터를 사용할 수
필터 : 문서에서
, 나는이 frase를 참조하십시오. 예를 들어 :
{% if messages|length >= 100 %} You have lots of messages today! {% endif %}
는하지만, 그것은 허용하는 다른 필터를 언급하지 않습니다. 따라서 slice
과 같은 필터가 허용됩니까? 그렇지 않은 것 같습니다.
템플릿에 필터를 사용하는 것에 대한 다른 게시물을 보았지만 if
에 사용하는 것을 언급하지 않았지만 {{ str.slice }}
과 같습니다.
슬라이스는 파이썬에서와 동일하게 작동합니다; '0 : 1'의 슬라이스는리스트를 제공하고 정수와 같을 수 없다. –
하지만 목록이 있습니까? 나는 의심하지 않는다. ">>> '18 .9'[0 : 1] '1'. – FaithReaper
내 말은, 나는 끈을 자르고 싶다. – FaithReaper