django 템플릿에서 "none"에 해당하는 것은 무엇입니까?
Django 템플릿 내에서 필드 / 변수가 없는지 확인하고 싶습니다. 이에 대한 올바른 구문은 무엇입니까?
이것이 내가 현재 가지고있는 것입니다.
{% if profile.user.first_name is null %}
<p> -- </p>
{% elif %}
{{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif%}
위의 예에서 "null"을 대체하려면 무엇을 사용해야합니까?
None, False and True
모두 템플릿 태그 및 필터 내에서 사용할 수 있습니다. None, False
, 빈 문자열 ( '', "", """"""
) 및 빈 목록 / 튜플은 모두로 평가 될 False
때 평가 if
되므로 쉽게 수행 할 수 있습니다.
{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
힌트 : @fabiocerqueira가 옳고, 논리를 모델에 맡기고, 템플릿을 유일한 프레젠테이션 레이어로 제한하고, 모델에서 이와 같은 것을 계산합니다. 예 :
# someapp/models.py
class UserProfile(models.Model):
user = models.OneToOneField('auth.User')
# other fields
def get_full_name(self):
if not self.user.first_name:
return
return ' '.join([self.user.first_name, self.user.last_name])
# template
{{ user.get_profile.get_full_name }}
도움이 되었기를 바랍니다 :)
다른 기본 제공 템플릿을 사용할 수도 있습니다. default_if_none
{{ profile.user.first_name|default_if_none:"--" }}
yesno 도우미 좀 봐
예 :
{{ myValue|yesno:"itwasTrue,itWasFalse,itWasNone" }}
{% if profile.user.first_name %}
작동합니다 (또한 수락하고 싶지 않다고 가정 ''
).
if
파이썬에서 일반적인 치료에 None
, False
, ''
, []
, {}
, ... 모든 거짓있다.
기본 제공 템플릿 필터를 사용할 수도 있습니다 default
.
값이 False로 평가되면 (예 : None, 빈 문자열, 0, False); 기본 "-"이 표시됩니다.
{{ profile.user.first_name|default:"--" }}
문서 : https://docs.djangoproject.com/en/dev/ref/templates/builtins/#default
is
연산자 : Django 1.10의 새로운 기능
{% if somevar is None %}
This appears if somevar is None, or if somevar is not found in the context.
{% endif %}
이 'if'를 수행 할 필요가 없습니다. {{ profile.user.get_full_name }}
참고 URL : https://stackoverflow.com/questions/11945321/what-is-the-equivalent-of-none-in-django-templates
'developer tip' 카테고리의 다른 글
svn 스위치 오류-동일한 저장소가 아닙니다. (0) | 2020.10.16 |
---|---|
IntelliJ의 다른 언어에 대한 사전은 어디에서 찾을 수 있습니까? (0) | 2020.10.16 |
Twitter Bootstrap 3의 절반 열 (0) | 2020.10.16 |
X 분마다 cronjob을 실행하는 방법은 무엇입니까? (0) | 2020.10.16 |
AngularJS 1.5+ 구성 요소는 감시자를 지원하지 않습니다. 해결 방법은 무엇입니까? (0) | 2020.10.16 |