2015-11-28 3 views
0

Я написал модель задачи, в которой было поле «дата» (которое представляло крайний срок задачи), однако я решил, что было бы лучше иметь начальную и дата истечения срока, как мне обновить мою модель, чтобы данные в дату перешли на дату окончания?Как изменить имя поля модели в Odoo

Вот что я имел:

_columns = { 
    'title': fields.char('Title', size=128, required=True), 
    'date': fields.date('Date', required=True), 
    'note': fields.text('Notes') 
     } 

И это то, что я хотел бы иметь:

_columns = { 
    'title': fields.char('Title', size=128, required=True), 
    'dateInitial': fields.date('Initial Date', required=True), 
    'dateDeadline': fields.date('Deadline Date', required=True), 
    'note': fields.text('Notes') 
} 

ответ

2

Попробуйте следующие шаги:

  • Добавить два новых поля 'dateInitial' и dateDeadline вместе с поле 'дата'.

  • Теперь обновите свой модуль, чтобы эти два поля попали в таблицу базы данных .

  • Теперь перейдите в среду базы данных и попробуйте выполнить следующий запрос. I Предположим, что ваше имя таблицы является «задачей»

    дата обновления задачи задана dateDeadline = date;

  • Это приведет все данные «дата» поле для «dateDeadline»

  • Теперь попытайтесь выполнить следующий запрос, чтобы удалить значения из «дата» Поле:

    дата установки обновления = значение null;

  • Теперь попытайтесь выполнить следующий запрос, чтобы уронить колонки «даты» из базы данных:

    альтера таблицы даты столбца падения задачи;

  • Теперь удалите поле из файла '.py' и обновите модуль еще раз.

Надеюсь, это поможет !!.

1

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

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

_columns = { 
    'title': fields.char('Title', size=128, required=True), 
    'date': fields.date(string='Deadline Date', required=True), 
    'inline_date:fields.date(string='Initial Date'), 
    'note': fields.text('Notes') 
     } 

В Odoo new API 8.0 как обрабатывается каждое поле: , когда мы определяем новое поле в новой модели или какой-либо существующей модели, а затем ее работу как имя поля как строку поля вашего представления (Odoo Views), когда в полевой строке нет строки, определяющей ее существующее поле в нашей модели.

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

Я надеюсь, что мой ответ может полезно для вас :)

0

Вот еще один способ со следующими шагами

1) Перейти технические параметры -> просмотры и удалить соответствующие представления,

2) Переименуйте свое поле в py и xml

3) обновите свой модуль, он будет работать

Смежные вопросы