장고 템플릿의 "none"에 해당하는 것은 무엇입니까?
장고 템플릿 내에 필드/변수가 없는지 확인하고 싶습니다.그것에 대한 정확한 구문은 무엇입니까?
이것이 현재 제가 가지고 있는 것입니다.
{% 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:"--" }}
내장 템플릿 필터를 사용할 수도 있습니다.default
:
값이 False(예: 없음, 빈 문자열, 0, False)로 평가되면 기본 "--"가 표시됩니다.
{{ profile.user.first_name|default:"--" }}
설명서: https://docs.djangoproject.com/en/dev/ref/templates/builtins/ #default
is
오퍼레이터 : New in Django 1.10
{% if somevar is None %}
This appears if somevar is None, or if somevar is not found in the context.
{% endif %}
예스노 헬퍼를 보세요.
예:
{{ myValue|yesno:"itwasTrue,itWasFalse,itWasNone" }}
{% if profile.user.first_name %}
works(사용자가 수락하지 않을 경우)''
).
if
일반적으로 파이썬에서None
,False
,''
,[]
,{}
, ... 모두 거짓입니다.
다음과 같은 분야에 대한 검증이 필요한 경우null
value, 확인 후 아래와 같이 처리할 수 있습니다.
{% for field in form.visible_fields %}
{% if field.name == 'some_field' %}
{% if field.value is Null %}
{{ 'No data found' }}
{% else %}
{{ field }}
{% endif %}
{% endif %}
{% endfor %}
이것을 시도해 볼 수 있습니다.
{% if not profile.user.first_name.value %}
<p> -- </p>
{% else %}
{{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif %}
이렇게 하면 기본적으로 양식 필드가first_name
연관된 모든 가치를 가지고 있어요{{ field.value }}
장고 문서의 양식 필드에 루프를 적용합니다.
장고 3.0을 쓰고 있습니다.
이전 답변에 대한 참고 사항: 문자열을 표시하려면 모든 것이 옳지만 숫자를 표시하려면 주의해야 합니다.
특히 0의 값을 가질 때bool(0)
에 평가합니다.False
표시되지 않으며 원하는 대로 표시되지 않을 수도 있습니다.
이 경우 사용이 더 좋습니다.
{% if profile.user.credit != None %}
언급URL : https://stackoverflow.com/questions/11945321/what-is-the-equivalent-of-none-in-django-templates
'programing' 카테고리의 다른 글
텍스트 상자에 빈 값이 있는지 확인합니다. (0) | 2023.09.09 |
---|---|
jQuery UI 대화상자에서 버튼을 비활성화하려면 어떻게 해야 합니까? (0) | 2023.09.09 |
Oracle의 여러 조건에 대한 사례 설명 (0) | 2023.09.09 |
컨테이너 오버라이드 프로세서의 MariaDB가 60%로 증가 (0) | 2023.09.09 |
Docker-Compose를 사용할 때 Django 데이터베이스 마이그레이션을 어떻게 수행합니까? (0) | 2023.09.09 |