import re with open('expenses/models.py', 'r', encoding='utf-8') as f: content = f.read() # Clean Project content = re.sub(r'\s+name = models\.CharField\(max_length=200, verbose_name="Nombre del Proyecto/Centro"\)', '', content) content = re.sub(r'\s+description = models\.TextField\(blank=True, verbose_name="Descripción"\)', '', content) content = re.sub(r'\s+created_at = models\.DateTimeField\(auto_now_add=True, verbose_name="Fecha de Creación"\)', '', content) content = re.sub(r'\s+updated_at = models\.DateTimeField\(auto_now=True, verbose_name="Última Modificación"\)', '', content) # Replace Category inheritance and clean content = content.replace("class Category(models.Model):", "class Category(CatalogModel):") content = re.sub(r'\s+code = models\.CharField\(max_length=10, unique=True, verbose_name="Código de Categoría"\)', '', content) content = re.sub(r'\s+name = models\.CharField\(max_length=100, verbose_name="Nombre de Categoría"\)', '', content) content = re.sub(r'\s+description = models\.TextField\(blank=True, verbose_name="Descripción"\)', '', content) # Replace Vendor content = content.replace("class Vendor(models.Model):", "class Vendor(TimeStampedModel):") # Remove Vendor created_at/updated_at content = re.sub(r'\s+created_at = models\.DateTimeField\(auto_now_add=True\)\n\s+updated_at = models\.DateTimeField\(auto_now=True\)', '', content) # Replace ProjectPhase content = content.replace("class ProjectPhase(models.Model):", "class ProjectPhase(TimeStampedModel):") # Replace Expense content = content.replace("class Expense(models.Model):", "class Expense(TimeStampedModel):") with open('expenses/models.py', 'w', encoding='utf-8') as f: f.write(content)