-
Django template tag if 문에서 변수끼리 비교Django 2019. 7. 11. 11:33
장고 template 에서 변수끼리 값이 맞는지 비교해야 되는 경우가 있다.
예를 들어
<select>
<option>
{% if request.GET.변수명 == user_id %}
</option>
</select>
처럼 옵션 안에서 두 변수끼리 비교를 하는 경우
일반적으로 request.GET.변수명 과 비교할때는 " " 처럼 문자열인 경우에 맞는지 체크가 되는것을 알 수 있다.
그런데, {% if request.GET.변수명 == "1" %} 이런식으로 지정되는 경우는 문제가 없지만
{% if request.GET.변수명 == user_id %} 처럼 변수명 으로 비교를 하게 될때
user_id 가 int 형인 경우는 같은 값인데도 불구하고 request.GET.변수명은 string형, user_id 가 int 형으로 판정되어
체크를 하지 못하게 된다.
그래서 일단 해결한 방법으로는
def get_context_data(self, *args, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['user_id'] = int(user_id)
return ctxget_context_data() 에서 user_id를 int 형, 혹은 맞는 자료형으로 바꿔서
{% if user_id == 특정변수 %}
로 비교해서 하면 맞게 동작하는 것을 확인할 수 있다.
'Django' 카테고리의 다른 글
Django ModelForm 에서 create, update 개발 (0) 2021.04.15 Django CharField 에서 ForeignKey 로 변경 (0) 2021.04.14 Django 각 일자별로 특정 필드 sum 하기 (0) 2020.06.16 Django에서 WhiteNoise 사용하기 (0) 2019.07.11 Mac에서 Django 와 MySql 연결하기 (0) 2016.11.22