因此,我制作了一个菜单,该菜单正在调用一种方法,该方法产生一些逻辑并在product.assortment.remove
中创建记录,并且在创建所有记录后,它返回一个视图。但是我的问题是我得到的视图有0条记录。
我的目标是我的方法应返回创建了所有记录的视图,并且用户可以删除一些记录(如普通树状视图中带有垃圾桶图标),我该如何做到这一点?
P.S。
实际上我将视图更改为树,将<field name="model">assortment.product.removal.wiz</field>
更改为product.assortment.remove
,并返回了包含所有记录的树视图,但是该视图没有垃圾箱图标,因此用户无法删除记录
class AssortmentProductRemoval(models.TransientModel):
_name = 'assortment.product.removal.wiz'
_description = "Wizard for removing assortment product"
prod_assort_rem_ids = fields.One2many(
'product.assortment.remove', 'product_id',
string='Product Assortmen Remove',)
@api.multi
def _check_assortment_items(self):
<-- some logic here -->
assort_rem_obj = self.env['product.assortment.remove']
vals = ({'qty_sold': qty,
'product_id': product.id,
'profit': profit})
assort_rem_obj.create(vals)
view = self.env.ref('config_hetlita.assortment_product_removal')
return {
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'assortment.product.removal.wiz',
'views': [(view.id, 'form'), (False, 'tree')],
'res_id': self.id,
'target': 'new'
}
class ProductAssortmentRemove(models.Model):
_name = 'product.assortment.remove'
product_id = fields.Many2one(
'product.template', string='Product',
domain=[],
required=False)
turnover = fields.Float(string='Turnover', required=False)
profit = fields.Float(string='Profit', required=False)
qty_sold = fields.Float(string='Quantity sold', required=False)
<record model="ir.ui.view" id="assortment_product_removal">
<field name="name">view.name</field>
<field name="model">assortment.product.removal.wiz</field>
<field name="arch" type="xml">
<form string="Update Set">
<field name="prod_assort_rem_ids" >
<tree editable="bottom">
<field name="product_id"/>
<field name="turnover"/>
<field name="qty_sold"/>
</tree>
</field>
<footer>
<button string="Cancel" icon="gtk-cancel" special="cancel" />
or
<button name="action_save_sol" string="Save" type="object" icon="gtk-ok"/>
</footer>
</form>
</field>
</record>
<record id="action_test2" model="ir.actions.server">
<field name="name">Assortment product removal</field>
<field name="model_id" ref="model_assortment_product_removal_wiz"/>
<field name="state">code</field>
<field name="code">action = self._check_assortment_items(cr, uid, context.get('active_ids'), context=context)</field>
</record>
<menuitem id="your_menu_id12" action="action_test2" parent="base.menu_sale_config" name="Assort remove" sequence="1"/>
答案 0 :(得分:1)
确保您的用户具有删除访问权限,并且您可以像这样在树上强制使用删除图标
<tree delete="1" >
由于您正在显示自己在向导中记录的内容,因此只能在表单视图中显示它们
# remove views key and use view_id
'view_id': view.id
我认为您缺少删除图标,因为odoo在视图模式下而不是在编辑模式下显示记录,因为您使用视图而不是view_id。或者您的用户没有对模型的删除访问权限。