@classmethod
def _fill_mapping(cls):
    """
        Fill mapping extended by handwritten fields and its sources
        """
    mapping_exclude = cls.get_fields_to_exclude_from_mapping()
    suggestions_exclude = cls.get_fields_to_exclude_from_suggestions()
    mapping = cls._mapping_class(cls.Meta.model)
    for field_name, field in cls.get_field_name_to_field().items():
        get_available_values_method = field.get_available_values_method()
        if field_name not in mapping_exclude:
            mapping.add_value(name=field_name, sources=field.sources,
                show_suggestions=cls.show_suggestions and field.
                show_suggestions and field_name not in suggestions_exclude,
                get_available_values_method=get_available_values_method,
                escape_quotes_in_suggestions=cls.escape_quotes_in_suggestions)
        if not field.exclude_sources_from_mapping:
            for source in field.sources:
                mapping.add_value(name=source, show_suggestions=cls.
                    show_suggestions and source not in suggestions_exclude,
                    get_available_values_method=get_available_values_method,
                    escape_quotes_in_suggestions=cls.
                    escape_quotes_in_suggestions)
    raw_mapping = cls.get_raw_mapping()
    for name in raw_mapping:
        if name not in mapping_exclude:
            mapping.add_value(name=name, show_suggestions=cls.
                show_suggestions and name not in suggestions_exclude,
                escape_quotes_in_suggestions=cls.escape_quotes_in_suggestions)
    cls._full_mapping = mapping
