Как я могу добавлять значения через XML в OpenERP7?

Я создал новую таблицу под названием res.country.region, а также добавил новое поле в существующую таблицу res.country.state, это поле region_id и указывает, к какому региону принадлежит штат.

Теперь я пытаюсь заполнить (через файл XML) поле region_id для некоторых существующих записей состояния, чьи xml_id известны. Это пример одной из записей моего XML-файла:

<record model='res.country.state' id='ES01'>
    <field name="region_id" ref="l10n_es_toponyms_region.ESPV"/>
</record>

Проблема в том, что я получаю ошибку целостности, потому что OpenERP7 сообщает мне, что я пытаюсь ввести запись в res.country.state с некоторыми обязательными полями, имеющими значение NULL. И я не пытаюсь вводить новые записи, а только обновляю одну из их колонок.

Как я могу с этим справиться?

ИЗМЕНИТЬ

ERROR my_database openerp.sql_db: bad query: insert into "res_country_state" (id,"region_id",create_uid,create_date,write_uid,write_date) values (104,16,1,(now() at time zone 'UTC'),1,(now() at time zone 'UTC'))
    Traceback (most recent call last):
      File "/opt/openerp7/ocb-server/openerp/sql_db.py", line 226, in execute
        res = self._obj.execute(query, params)
    IntegrityError: null value in column "code" violates not-null constraint

person forvas    schedule 10.10.2014    source источник
comment
вы можете показать нам ошибку целостности? И обратите внимание: когда вы добавляете значение через xml, этот идентификатор регистрируется перед его использованием. Например, сначала определите родительское значение и назначьте его дочернему.   -  person Bhavesh Odedra    schedule 10.10.2014
comment
@Odedra Спасибо за ответ. Я принял это во внимание. Я обновил свой вопрос с ошибкой.   -  person forvas    schedule 10.10.2014
comment
пожалуйста, вставьте кодовое значение для res_country_state model, похоже, что код является обязательным полем, но вы не указали его значение. После этого все заработает.   -  person Bhavesh Odedra    schedule 10.10.2014
comment
@Odedra Да, это проблема, о которой я говорил. Я хочу обновить существующую запись (в которую уже введен код), и я делаю что-то не так с записями XML, поэтому OpenERP думает, что я хочу создать новое состояние, определяя только его region_id и оставляя код пустым. Но я хочу обновить, как мне это сделать?   -  person forvas    schedule 10.10.2014


Ответы (1)


Наконец, я нашел решение: если вы хотите обновить запись, которая была введена XML-файлами, вы должны указать в ее идентификаторе имя модуля, который имел XML-файл, точку и xml_id, который имел запись.

So:

<record model='res.country.state' id='module.ES01'>
    <field name="region_id" ref="l10n_es_toponyms_region.ESPV"/>
</record>
person forvas    schedule 10.10.2014