[Python #16] [Django #9] 7일전 보상 0으로 노출되는 문제 해결

in #hive-1329712 months ago

pixabay

https://steempeak.com/hive-101145/@june0620/python-12-django-5-template-tags-filters 이 글에서도 언급했던 7일 전 포스팅 보상이 0으로 노출되는 문제를 해결해 본다.

pending_payout_value 값을 썼는데 7일전 포스팅은 이미 보상이 완료됐기때문에 해당 키값이 0으로 되면서 발생한 문제였다.
get_blog 함수 리스폰스 값을 확인 결과 7일전 보상은 total_payout_value 를 쓰면 될 것 같다.

pending_payout_value값이 있으면 사용, 0이면 total_payout_value 값 사용을 django의 templatetags.py 에 filter로 등록하면 될 것 같다.

@register.filter
def get_payout_value(post_data: dict):
    value = post_data['pending_payout_value']
    if value.startswith("0.000"):
        value = post_data['total_payout_value']
    return value

html 파일도 이 filter를 사용하여 조금 수정해 줘야 한다.

...
<small class="text-muted">보상 {{ post.comment | get_payout_value }} </small>
...


[Cookie 😅]
Python 3.7.4
Django 2.2.4
steem-python 1.0.1
goorm IDE 1.3

참고 글:
https://wayhome25.github.io/django/2017/06/22/custom-template-filter/

https://www.pymoon.com/entry/djang-%ED%85%9C%ED%94%8C%EB%A6%BF%EC%97%90%EC%84%9C-custom-tag-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

https://amoreopensource.wordpress.com/2019/04/23/access-jsonfield-in-django-templates-like-a-dictionary/