Как добавить поля в древовидное представление со значениями по умолчанию при нажатии кнопки? - PullRequest
0 голосов
/ 12 ноября 2018

Я добавляю кнопку, открывающую новый мастер, это последнее содержит только одно поле - число, это число - количество полей, которые я хочу создать в моем дереве в виде блокнота дерева со значением по умолчанию

например, если я наберу 20, то когда я отправляю, я получаю 20 записей в древовидном представлении

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вот снимок модели: enter image description here Посмотрите на мой код:

@api.multi
def creat_fields(self):
    numbers = self.w_qtt
    for values in numbers:
        # self.env['sale.order.line'].create(lignes_vales)
        self.env['sale.order.line'].create({
            'contrat_name_id': self.w_contrat_name,
            'contrat_lignes_id' : self.w_contrat_line,
            'product_id' : self.w_product_name,
            'bons_po' : self.w_po_number,
            'product_uom_qty' : 1,
            'price_unit' : self.w_prix,
        })

и в XML:

 <footer>
      <button string="Cancel" class="oe_link" special="cancel"/>
      <button 
           name="creat_fields" 
           string="Enregistrer" 
           class="oe_highlight" 
           context="{'default_source_record_id': active_id}"/>
</footer>
0 голосов
/ 12 ноября 2018

Я предполагаю, что это одно из многих полей.Поля One2many связаны с вашей моделью путем указания номера идентификатора записи в поле, которое вы указываете при определении поля many2one.

Например:

child_ids = fields.One2many('child.model.name', 'parent_id', 'Child Records')

Таким образом, при создании новогоВ строке, использующей поле one2many, создается новая запись модели "child.model.name", а в поле parent_id устанавливается идентификатор текущей записи.

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

Во-первых, вам нужно будет передать идентификатор исходной записи в мастер, что вы должны сделать вопределение кнопки:

<button name="%(wizard_action)d"
    string="Wizard Button"
    type="action"
    context="{'default_source_record_id': active_id}" />

Вам понадобится поле с именем «source_record_id» в вашем мастере, которое будет полем many2one с той же моделью, из которой вы его вызываете, и вам понадобится это полев представлении мастера, но вы можете сделать его невидимым, если хотите.

В коде, который вы вызываете из мастера, вы создадите цикл для вызоваметод create в модели "child.model.name" для создания такого количества пустых записей.Это будет выглядеть примерно так:

iterations = self.nombre

for i in range(iterations):
    self.env['child.model.name'].create({
        'parent_id': self.source_record_id.id
    })

Это создаст пустые записи, и они будут отображены в вашем поле one2many.

...