shuup.importer.importing package¶
Submodules¶
shuup.importer.importing.importing module¶
-
class
shuup.importer.importing.importing.
DataImporter
(data, shop, language)[source]¶ Bases:
object
-
meta_class_getter_name
= 'get_import_meta'¶
-
meta_base_class
¶ alias of
ImportMetaBase
-
extra_matches
= {}¶
-
unique_fields
= {}¶
-
unmatched_fields
= set()¶
-
relation_map_cache
= {}¶
-
model
= None¶
-
map_data_to_fields
(model_mapping)[source]¶ Map fields
If field is not found it will be saved into unmapped :return:
-
get_fields_for_mapping
(only_non_mapped=True)[source]¶ Get fields for manual mapping
Returns: List of fields module_name.Model:field
or empty listReturn type: list
-
get_row_model
(row)[source]¶ Get model that matches the row
Can be used in cases where you have multiple types of data in same import
Parameters: row – A row dict
-
is_multi_model
¶
Process Related values
Parameters: field – Django Field object Returns: Found value
-
shuup.importer.importing.meta module¶
-
class
shuup.importer.importing.meta.
ImportMetaBase
(handler, model)[source]¶ Bases:
object
-
fk_matchers
= {}¶
-
aliases
= {}¶ Post save handlers
You can directly assign post save handler for a field. Field That has post save handler assigned won’t be available for mapping and won’t cause it to appear in unmapped fields in importer.
The handler is being triggered if any of the given values in trigger list is being encountered while iterating.
- This is a dictionary that contains list of values:
- {function_name: [list_of_triggers]}
- Example:
- post_save_handlers = {
- “handle_row_address”: [‘city’, ‘country’, ‘postal code’, ‘region code’, ‘street’],
}
In this example the
handle_row_address
is being called when any of the triggers is being encountered.
-
post_save_handlers
= {}¶ Fields to skip
It’s sometimes necessary to skip fields in importer.
For now we are using this to skip image fields in
ProductMetaBase
.
-
fields_to_skip
= []¶
-
global_aliases
= {}¶ Aliases for keys usually used in the importing meta
- This is dictionary that contains list of values:
- {shuup_field: [expected_fields]}
- Example:
- aliases = {
- “name_ext”: [“extension”, “ext”]
}
-
get_import_defaults
()[source]¶ Get default values for importing
If a certain value is required in import but does not exist in the imported file this method completes said missing data.
- Example:
- return {
- “type_id”: ProductType.objects.first().id, “tax_class_id”: TaxClass.objects.first().id,
}
Returns: Dict of field name -> default value. Return type: dict[str, str]|dict
-
presave_hook
(row_session)[source]¶ Pre-save Hook
This method is called before the row session is saved. This can be used to add data into
row_session.instance
Parameters: row_session (shuup.importer.importing.session.DataImporterRowSession) – Current row session Returns: None
-
postsave_hook
(row_session)[source]¶ Post-save Hook
This method is called after the row session is saved. This can be used to create related objects.
Parameters: row_session (shuup.importer.importing.session.DataImporterRowSession) – Current row session Returns: None
-
has_post_save_handler
(field_name)[source]¶ See if meta has Post-Save handler
Parameters: field_name – Name of the field to lookup Returns: True or False if has post save handler Return type: Boolean
-
field_aliases
¶ Get all field aliases
If local aliases are being set, global aliases are extended. :return: Dict key => list of aliases :rtype: dict[str, list]|dict
-
shuup.importer.importing.session module¶
Module contents¶
-
class
shuup.importer.importing.
DataImporter
(data, shop, language)[source]¶ Bases:
object
-
extra_matches
= {}¶
-
get_fields_for_mapping
(only_non_mapped=True)[source]¶ Get fields for manual mapping
Returns: List of fields module_name.Model:field
or empty listReturn type: list
-
get_row_model
(row)[source]¶ Get model that matches the row
Can be used in cases where you have multiple types of data in same import
Parameters: row – A row dict
-
is_multi_model
¶
-
map_data_to_fields
(model_mapping)[source]¶ Map fields
If field is not found it will be saved into unmapped :return:
-
meta_base_class
¶ alias of
ImportMetaBase
-
meta_class_getter_name
= 'get_import_meta'¶
-
model
= None¶
Process Related values
Parameters: field – Django Field object Returns: Found value
-
relation_map_cache
= {}¶
-
unique_fields
= {}¶
-
unmatched_fields
= set()¶
-
-
class
shuup.importer.importing.
DataImporterRowSession
(importer, row, instance, shop)[source]¶ Bases:
object
-
class
shuup.importer.importing.
ImportMetaBase
(handler, model)[source]¶ Bases:
object
-
aliases
= {}¶
-
field_aliases
¶ Get all field aliases
If local aliases are being set, global aliases are extended. :return: Dict key => list of aliases :rtype: dict[str, list]|dict
-
fields_to_skip
= []¶
-
fk_matchers
= {}¶
-
get_import_defaults
()[source]¶ Get default values for importing
If a certain value is required in import but does not exist in the imported file this method completes said missing data.
- Example:
- return {
- “type_id”: ProductType.objects.first().id, “tax_class_id”: TaxClass.objects.first().id,
}
Returns: Dict of field name -> default value. Return type: dict[str, str]|dict
-
global_aliases
= {}¶
-
has_post_save_handler
(field_name)[source]¶ See if meta has Post-Save handler
Parameters: field_name – Name of the field to lookup Returns: True or False if has post save handler Return type: Boolean
-
post_save_handlers
= {}¶
-
postsave_hook
(row_session)[source]¶ Post-save Hook
This method is called after the row session is saved. This can be used to create related objects.
Parameters: row_session (shuup.importer.importing.session.DataImporterRowSession) – Current row session Returns: None
-
presave_hook
(row_session)[source]¶ Pre-save Hook
This method is called before the row session is saved. This can be used to add data into
row_session.instance
Parameters: row_session (shuup.importer.importing.session.DataImporterRowSession) – Current row session Returns: None
-