コード例 #1
0
    def _update_id_list(names_list, model_obj, field_name):
        names_list = map(str, names_list)
        local_list = UploadEntries._get_id_list(names_list, model_obj,
                                                field_name)
        diff = list(set(names_list) - set(local_list.keys()))
        insert_list = [{field_name: str(o)} for o in diff]
        if insert_list:
            with DB.atomic():
                model_obj.insert_many(insert_list).execute()

        return UploadEntries._get_id_list(names_list, model_obj, field_name)
コード例 #2
0
 def _insert_kv_mappings(item, key_cache, value_cache, transaction_id):
     insert_list = []
     for field in item:
         value = str(item[str(field)])
         key_id = key_cache[str(field)]
         value_id = value_cache[value]
         insert_list.append({
             'key': key_id,
             'value': value_id,
             'transaction': transaction_id
         })
     insert_count = 0
     if insert_list:
         with DB.atomic():
             for insert_item in insert_list:
                 TransactionKeyValue.get_or_create(**insert_item)
                 insert_count += 1
     return insert_count