Как я могу установить поле schema.Datetime на Нет с ловкостью - PullRequest
2 голосов
/ 01 сентября 2011

Я пишу простой тип контента с Dexterity для управления клиентами, помимо обычных полей, например, имя, компания, телефон ... Я также добавил поле Datetime для хранения при первой встрече с клиенты были задержаны, давайте назовем это «firstmeeting», который я определил В моем интерфейсе ICustomers как:

firstmeeting = schema.Datetime(
        title=_(u"First Meeting"),
        required=False,
    )

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

Я пытался использовать пользовательский класс, объяснил Мартин Аспели в http://plone.org/products/dexterity/documentation/manual/developer-manual/advanced/classes но я не знаю, как проверить пользовательский ввод и установить значение None, если ничего был набран.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 сентября 2011

Я узнал, что происходит в моем коде.

На самом деле проблема была в шаблоне view.pt, где я использовал функцию toLocalizedTime (), которая преобразовывала значение None в текущую дату, поэтому ядобавлено условие tal: для печати значения даты.

<span id="form-widgets-firstmeeting" class="datetime-widget datetime-field"
      tal:condition="context/firstmeeting"
      tal:content="python:context.toLocalizedTime(context.firstmeeting)" />
0 голосов
/ 01 сентября 2011

Вы пробовали default=None?

...