From e44e44df4195e66e3e417f22e76da8540b7b005b Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Wed, 19 Jul 2023 10:03:53 +0800 Subject: [PATCH] =?UTF-8?q?sf=E5=A4=84=E5=8A=9F=E8=83=BD=E5=88=80=E5=85=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=8A=E5=85=B6=E5=90=8C=E6=AD=A5=EF=BC=8C?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=BD=8D=E7=BD=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/tool_base_new.py | 37 ++++++++ sf_base/views/tool_menu.xml | 4 +- sf_base/views/tool_views.xml | 20 ++++- sf_mrs_connect/models/sync_common.py | 125 +++++++++++++++++++-------- 4 files changed, 143 insertions(+), 43 deletions(-) diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index d6f69dd0..945ab1eb 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -23,6 +23,36 @@ class FunctionalCuttingTool(models.Model): name = fields.Char('名称') mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型') mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号') + + # 整体式刀具型号 + mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_integral_model_functional_sf', + string='整体式刀具型号', domain= + [('mrs_cutting_tool_material_name', '=', '整体式刀具')]) + # 刀片型号 + mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_blade_model_functional_sf', + string='刀片型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀片')]) + # 刀杆型号 + mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', + 'rel_cutterbar_model_functional_sf', + string='刀杆型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀杆')]) + # 刀盘型号 + mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', + 'rel_cutterpad_model_functional_sf', + string='刀盘型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀盘')]) + # 刀柄型号 + mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', + 'rel_cutterhandle_model_functional_sf', string='刀柄型号', + domain= + [('mrs_cutting_tool_material_name', '=', '刀柄')]) + # 夹头型号 + mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', + 'rel_cutterhead_model_functional_sf', + string='夹头型号', domain= + [('mrs_cutting_tool_material_name', '=', '夹头')]) + diameter = fields.Float('直径(mm)') tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')], string='刀具等级') @@ -36,6 +66,13 @@ class FunctionalCuttingTool(models.Model): applicable_range = fields.Char('适用范围') image = fields.Binary('图片') + def _get_functional_tool_model_ids(self, functional_tool_model_code): + functional_tool_model_ids = [] + for item in functional_tool_model_code: + functional_tool_model = self.env['sf.cutting.tool.model'].search([('code', '=', item)]) + functional_tool_model_ids.append(functional_tool_model.id) + return [(6, 0, functional_tool_model_ids)] + # 功能刀具类型 class FunctionalCuttingToolModel(models.Model): diff --git a/sf_base/views/tool_menu.xml b/sf_base/views/tool_menu.xml index 1874b3b0..a1c976d5 100644 --- a/sf_base/views/tool_menu.xml +++ b/sf_base/views/tool_menu.xml @@ -74,7 +74,7 @@ id="menu_sf_functional_cutting_tool" parent="menu_sf_cutting_tool" name="功能刀具" - sequence="4" + sequence="5" action="action_sf_functional_cutting_tool" /> @@ -82,7 +82,7 @@ id="menu_sf_functional_cutting_tool_model_type" parent="menu_sf_cutting_tool" name="功能刀具类型" - sequence="5" + sequence="4" action="action_sf_functional_cutting_tool_model_type" /> diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml index 27619b6d..4b02fefb 100644 --- a/sf_base/views/tool_views.xml +++ b/sf_base/views/tool_views.xml @@ -58,6 +58,12 @@ + + + + + + @@ -72,10 +78,16 @@ - - - - + + + + + + + + + + diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index ed546820..ae0196bb 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -815,7 +815,7 @@ class MachineToolType(models.Model): [('code', '=', item['control_system_id'])]).id, "active": item['active'], 'brand_id': self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]).id, - 'machine_tool_picture':image, + 'machine_tool_picture': image, "heightened_way": item['heightened_way'], "workpiece_load": item['workpiece_load'], "lead_screw": item['lead_screw'], @@ -1186,9 +1186,21 @@ class sfSyncFunctional_cutting_tool(models.Model): # 功能刀具类型 "mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search( [('code', '=', item['mrs_cutting_tool_type_id'])]).id, - # 刀具型号 - "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search( - [('code', '=', item['mrs_cutting_tool_model_id'])]).id, + # # 刀具型号 + # "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search( + # [('code', '=', item['mrs_cutting_tool_model_id'])]).id, + "mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_integral_model_ids']), + "mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_blade_model_ids']), + "mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterbar_model_ids']), + "mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterpad_model_ids']), + "mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhandle_model_ids']), + "mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhead_model_ids']), "diameter": item['diameter'], "tool_grade": item['tool_grade'], "machining_accuracy": item['machining_accuracy'], @@ -1209,9 +1221,18 @@ class sfSyncFunctional_cutting_tool(models.Model): # 功能刀具类型 "mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search( [('code', '=', item['mrs_cutting_tool_type_id'])]).id, - # 刀具型号 - "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search( - [('code', '=', item['mrs_cutting_tool_model_id'])]).id, + "mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_integral_model_ids']), + "mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_blade_model_ids']), + "mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterbar_model_ids']), + "mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterpad_model_ids']), + "mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhandle_model_ids']), + "mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhead_model_ids']), "diameter": item['diameter'], "tool_grade": item['tool_grade'], "machining_accuracy": item['machining_accuracy'], @@ -1257,9 +1278,18 @@ class sfSyncFunctional_cutting_tool(models.Model): # 功能刀具类型 "mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search( [('code', '=', item['mrs_cutting_tool_type_id'])]).id, - # 刀具型号 - "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search( - [('code', '=', item['mrs_cutting_tool_model_id'])]).id, + "mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_integral_model_ids']), + "mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_blade_model_ids']), + "mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterbar_model_ids']), + "mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterpad_model_ids']), + "mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhandle_model_ids']), + "mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhead_model_ids']), "diameter": item['diameter'], "tool_grade": item['tool_grade'], "machining_accuracy": item['machining_accuracy'], @@ -1280,9 +1310,18 @@ class sfSyncFunctional_cutting_tool(models.Model): # 功能刀具类型 "mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search( [('code', '=', item['mrs_cutting_tool_type_id'])]).id, - # 刀具型号 - "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search( - [('code', '=', item['mrs_cutting_tool_model_id'])]).id, + "mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_integral_model_ids']), + "mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_blade_model_ids']), + "mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterbar_model_ids']), + "mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterpad_model_ids']), + "mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhandle_model_ids']), + "mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids( + item['mrs_cutting_tool_cutterhead_model_ids']), "diameter": item['diameter'], "tool_grade": item['tool_grade'], "machining_accuracy": item['machining_accuracy'], @@ -1561,7 +1600,7 @@ class SyncFixtureModel(models.Model): "materials_model_id": self.env['sf.materials.model'].search( [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], - "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( + "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( [('code', '=', item['apply_machine_tool_type_code'])]).id, "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], @@ -1590,7 +1629,7 @@ class SyncFixtureModel(models.Model): "materials_model_id": self.env['sf.materials.model'].search( [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], - "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( + "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( [('code', '=', item['apply_machine_tool_type_code'])]).id, "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], @@ -1641,7 +1680,7 @@ class SyncFixtureModel(models.Model): "materials_model_id": self.env['sf.materials.model'].search( [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], - "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( + "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( [('code', '=', item['apply_machine_tool_type_code'])]).id, "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], @@ -1670,7 +1709,7 @@ class SyncFixtureModel(models.Model): "materials_model_id": self.env['sf.materials.model'].search( [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], - "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( + "apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search( [('code', '=', item['apply_machine_tool_type_code'])]).id, "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], @@ -1983,14 +2022,14 @@ class SfToolModel(models.Model): mrs_cutting_tool_model_blade_cutter_bar_ids_list = [] if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'): for mrs_cutting_tool_model_blade_cutter_bar_id in item[ - 'mrs_cutting_tool_model_blade_cutter_bar_ids']: + 'mrs_cutting_tool_model_blade_cutter_bar_ids']: mrs_cutting_tool_model_blade_cutter_bar_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id) mrs_cutting_tool_model_blade_cutter_pad_ids_list = [] if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'): for mrs_cutting_tool_model_blade_cutter_pad_id in item[ - 'mrs_cutting_tool_model_blade_cutter_pad_ids']: + 'mrs_cutting_tool_model_blade_cutter_pad_ids']: mrs_cutting_tool_model_blade_cutter_pad_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id) @@ -2007,14 +2046,14 @@ class SfToolModel(models.Model): mrs_cutting_tool_model_handle_chuck_model_ids_list = [] if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'): for mrs_cutting_tool_model_handle_chuck_model_id in item[ - 'mrs_cutting_tool_model_handle_chuck_model_ids']: + 'mrs_cutting_tool_model_handle_chuck_model_ids']: mrs_cutting_tool_model_handle_chuck_model_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id) mrs_cutting_tool_model_chuck_handle_model_ids_list = [] if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'): for mrs_cutting_tool_model_chuck_handle_model_id in item[ - 'mrs_cutting_tool_model_chuck_handle_model_ids']: + 'mrs_cutting_tool_model_chuck_handle_model_ids']: mrs_cutting_tool_model_chuck_handle_model_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id) @@ -2061,8 +2100,10 @@ class SfToolModel(models.Model): "blade_hardness": item['blade_hardness'], "blade_radius": item['blade_radius'], "blade_nut": item['blade_nut'], - "mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list, - "mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list, + "mrs_cutting_tool_model_blade_cutter_bar_ids": + mrs_cutting_tool_model_blade_cutter_bar_ids_list, + "mrs_cutting_tool_model_blade_cutter_pad_ids": + mrs_cutting_tool_model_blade_cutter_pad_ids_list, "bar_code": item['bar_code'], "bar_c_diameter": item['bar_c_diameter'], "bar_total_length": item['bar_total_length'], @@ -2111,7 +2152,8 @@ class SfToolModel(models.Model): "chuck_inner_diameter": item['chuck_inner_diameter'], "chuck_height": item['chuck_height'], "chuck_nut": item['chuck_nut'], - "mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list, + "mrs_cutting_tool_model_chuck_handle_model_ids": + mrs_cutting_tool_model_chuck_handle_model_ids_list, "chuck_clamping_range": item['chuck_clamping_range'], "chuck_feature": item['chuck_feature'], "image": image, @@ -2168,8 +2210,10 @@ class SfToolModel(models.Model): "blade_hardness": item['blade_hardness'], "blade_radius": item['blade_radius'], "blade_nut": item['blade_nut'], - "mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list, - "mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list, + "mrs_cutting_tool_model_blade_cutter_bar_ids": + mrs_cutting_tool_model_blade_cutter_bar_ids_list, + "mrs_cutting_tool_model_blade_cutter_pad_ids": + mrs_cutting_tool_model_blade_cutter_pad_ids_list, "bar_code": item['bar_code'], "bar_c_diameter": item['bar_c_diameter'], "bar_total_length": item['bar_total_length'], @@ -2218,7 +2262,8 @@ class SfToolModel(models.Model): "chuck_inner_diameter": item['chuck_inner_diameter'], "chuck_height": item['chuck_height'], "chuck_nut": item['chuck_nut'], - "mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list, + "mrs_cutting_tool_model_chuck_handle_model_ids": + mrs_cutting_tool_model_chuck_handle_model_ids_list, "chuck_clamping_range": item['chuck_clamping_range'], "chuck_feature": item['chuck_feature'], "image": image, @@ -2261,14 +2306,14 @@ class SfToolModel(models.Model): mrs_cutting_tool_model_blade_cutter_bar_ids_list = [] if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'): for mrs_cutting_tool_model_blade_cutter_bar_id in item[ - 'mrs_cutting_tool_model_blade_cutter_bar_ids']: + 'mrs_cutting_tool_model_blade_cutter_bar_ids']: mrs_cutting_tool_model_blade_cutter_bar_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id) mrs_cutting_tool_model_blade_cutter_pad_ids_list = [] if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'): for mrs_cutting_tool_model_blade_cutter_pad_id in item[ - 'mrs_cutting_tool_model_blade_cutter_pad_ids']: + 'mrs_cutting_tool_model_blade_cutter_pad_ids']: mrs_cutting_tool_model_blade_cutter_pad_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id) @@ -2285,14 +2330,14 @@ class SfToolModel(models.Model): mrs_cutting_tool_model_handle_chuck_model_ids_list = [] if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'): for mrs_cutting_tool_model_handle_chuck_model_id in item[ - 'mrs_cutting_tool_model_handle_chuck_model_ids']: + 'mrs_cutting_tool_model_handle_chuck_model_ids']: mrs_cutting_tool_model_handle_chuck_model_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id) mrs_cutting_tool_model_chuck_handle_model_ids_list = [] if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'): for mrs_cutting_tool_model_chuck_handle_model_id in item[ - 'mrs_cutting_tool_model_chuck_handle_model_ids']: + 'mrs_cutting_tool_model_chuck_handle_model_ids']: mrs_cutting_tool_model_chuck_handle_model_ids_list.append( self.env['sf.cutting.tool.model'].search( [("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id) @@ -2339,8 +2384,10 @@ class SfToolModel(models.Model): "blade_hardness": item['blade_hardness'], "blade_radius": item['blade_radius'], "blade_nut": item['blade_nut'], - "mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list, - "mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list, + "mrs_cutting_tool_model_blade_cutter_bar_ids": + mrs_cutting_tool_model_blade_cutter_bar_ids_list, + "mrs_cutting_tool_model_blade_cutter_pad_ids": + mrs_cutting_tool_model_blade_cutter_pad_ids_list, "bar_code": item['bar_code'], "bar_c_diameter": item['bar_c_diameter'], "bar_total_length": item['bar_total_length'], @@ -2388,7 +2435,8 @@ class SfToolModel(models.Model): "chuck_inner_diameter": item['chuck_inner_diameter'], "chuck_height": item['chuck_height'], "chuck_nut": item['chuck_nut'], - "mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list, + "mrs_cutting_tool_model_chuck_handle_model_ids": + mrs_cutting_tool_model_chuck_handle_model_ids_list, "chuck_clamping_range": item['chuck_clamping_range'], "chuck_feature": item['chuck_feature'], "image": image, @@ -2441,8 +2489,10 @@ class SfToolModel(models.Model): "blade_hardness": item['blade_hardness'], "blade_radius": item['blade_radius'], "blade_nut": item['blade_nut'], - "mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list, - "mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list, + "mrs_cutting_tool_model_blade_cutter_bar_ids": + mrs_cutting_tool_model_blade_cutter_bar_ids_list, + "mrs_cutting_tool_model_blade_cutter_pad_ids": + mrs_cutting_tool_model_blade_cutter_pad_ids_list, "bar_code": item['bar_code'], "bar_c_diameter": item['bar_c_diameter'], "bar_total_length": item['bar_total_length'], @@ -2491,7 +2541,8 @@ class SfToolModel(models.Model): "chuck_inner_diameter": item['chuck_inner_diameter'], "chuck_height": item['chuck_height'], "chuck_nut": item['chuck_nut'], - "mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list, + "mrs_cutting_tool_model_chuck_handle_model_ids": + mrs_cutting_tool_model_chuck_handle_model_ids_list, "chuck_clamping_range": item['chuck_clamping_range'], "chuck_feature": item['chuck_feature'], "image": image,