<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save(self, *args, **kwargs):
 """ This method autogenerates the auto_generated_description field """


        # Cache basic data
        self.cache_data()

        # Ensure slug doesn't change
        if self.id is not None:
            db_company = Company.objects.get(id=self.id)
            if self.slug_name != db_company.slug_name:
                raise ValueError("Cannot reset slug_name")

        if str(self.trade_name).strip() == "":
            self.trade_name = None

        # Short description check
        if len(str(self.short_description)) > 370:
            raise AssertionError("Short description must be no more than 370 characters")

        if self.sub_industry is not None:
            # Cache GICS
            self.industry = self.sub_industry.industry
            self.industry_group = self.sub_industry.industry.industry_group
            self.sector = self.sub_industry.industry.industry_group.sector
            # Cache GICS names
            self.sub_industry_name = self.sub_industry.name
            self.industry_name = self.industry.name
            self.industry_group_name = self.industry_group.name
            self.sector_name = self.sector.name

        # Call save method
        super(Company, self).save(*args, **kwargs)