Django: Хотите отобразить пустое поле как пустое, а не None - PullRequest
15 голосов
/ 05 июля 2011

У меня есть шаблон под названием client_details.html, который отображает user, note и datetime.Теперь иногда клиент может не иметь записи для пользователя, заметки и даты и времени.Вместо этого моя программа будет отображать None, если эти поля пусты.Я не хочу отображать None.Если поле не имеет значения, я не хочу видеть какое-либо значение, например, пусть оно будет пустым, если это возможно, вместо отображения Нет.

views.py

@login_required
def get_client(request, client_id = 0):
    client = None
    try:
        client = models.Client.objects.get(pk = client_id)
    except:
        pass
    return render_to_response('client_details.html', {'client':client}, context_instance = RequestContext(request))

шаблон

{{client.datetime}}<br/> 
{{client.datetime.time}}<br/>  
{{client.user}}<br/>
{{client.note}}<br/>

Ответы [ 3 ]

79 голосов
/ 05 июля 2011

Используйте встроенный фильтр default_if_none.

{{ client.user|default_if_none:"&nbsp;" }}
{{ client.user|default_if_none:"" }}
5 голосов
/ 30 ноября 2015

это такая странная проблема. У меня есть хорошая идея для этого. Если вы хотите изменить свое поле во время отображения, а не проверять его в шаблоне, проверьте его в классе вашей модели.

ExampleModel(models.Model):
    myfield = models.CharField(blank=True, null = True)

    @property
    def get_myfield(self)
        if self.myfield:
              return self.myfield
        else:
              return ""

Используйте его в своем шаблоне непосредственно вместо поля.

 {{ExampleModel.get_myfield}}

Вам никогда не нужно менять свой шаблон, чтобы изменить это поле в будущем, просто измените свое свойство.

4 голосов
/ 05 июля 2011

вы можете использовать:

{% if client %} {{client.user}} {% else %} &nbsp; {% endif %}

Проверка с помощью , достаточно ли , так что вы не можете блокировать пользователя, если хотите ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...