Установить условие ошибки для атрибута значения - PullRequest
0 голосов
/ 01 июня 2018

В следующем коде шаблона я устанавливаю value="{{ form.title.value }}", и он отображается так, как я планировал,

  <div class="form-group">
    <label for="title" class="col-sm-1 control-label">Title</label>
    <div class="col-sm-11">
      <input type="text" class="form-control" id="title" name="title" placeholder="Write Title Later"  value="{{ form.title.value }}">
    </div>

enter image description here

Однако в другом шаблоне, если я установлю value="{{ form.username.value }}", отобразится None

  <div class="form-group">
    <label for="username" class="col-sm-1 control-label">Username</label>
    <div class="col-sm-11">
      <input type="text" class="form-control" id="username" value="{{ form.username.value }}"
 name="username" placeholder="Email">
    </div>
  </div>

enter image description here

Мне нужно установить value="{% if form.username.value %}{{ form.username.value }}{%else%}{%endif%}"

  <div class="form-group">
    <label for="username" class="col-sm-1 control-label">Username</label>
    <div class="col-sm-11">
      <input type="text" class="form-control" id="username" value="{% if form.username.value %}{{ form.username.value }}{%else%}{%endif%}"
 name="username" placeholder="Email">
    </div>
  </div>

Я не могу понять, в чем разница между двумя шаблонами форм.

1 Ответ

0 голосов
/ 01 июня 2018

В Python есть разница между None и пустой строкой ''.Пустая строка - это строка без символов, с другой стороны, None - это вовсе не строка, но вы можете увидеть ее так, как во многих языках программирования, вероятно, будет что-то вроде null.

По умолчанию Django набирает None как строку 'None', а не как пустую строку.Однако вы можете использовать фильтр default_if_none:

value="{{ form.title.value<b> | default_if_none: ''</b> }}"

Здесь мы, таким образом, будем использовать пустую строку '' в случае, если значение слева отсимвол канала (|) - None.

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