Показать сообщение отдельно
Старый 11.01.2017, 15:51   #16  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Как понимаю все сходится на том что .isFieldSet() аналог "isTouched including defaulting".

Интересный вопрос в каком случае имеем Default state для поля.
и будет ли данный Default state установлен (и как результат .isFieldSet() == true)
при вызове super() в initValue().

Предполагаемые варианты получения Default state == true
Вариант 1: значение, отличное от записанного в базу
Вариант 2: дефолтное присваивание, если отличается от варианта 1. Например присваивание сделанное в initValue()
Вариант 3. вызов super() в initValue(). То есть Default state не может получаться при использовании оператора присваивания.

Лично мне ближе Вариант 3.

Цитата:
Сообщение от mazzy Посмотреть сообщение
а как сейчас работает логика defaulting'а?
сейчас это просто значение, отличное от записанного в базу? или как-то по-другому?
Цитата:
Сообщение от dech Посмотреть сообщение
Очевидно, что после любого присваивания, даже дефолтного метод вернет true.
False, если поле вообще не трогали.
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Не важно значение поля, важен факт того, было ли оно явно установлено.
...
В моем понимании задача логики defaulting'а - неявно подтягивать значения по умолчанию либо значения связанных полей на основе тех полей, которые заданы явно.
...
В общем, действительно, дело в том, трогали ли поле