diff --git a/modelgen/generator/django.py b/modelgen/generator/django.py index 418c2ff..dce7e6e 100644 --- a/modelgen/generator/django.py +++ b/modelgen/generator/django.py @@ -217,13 +217,14 @@ class DjangoGenerator(BaseGenerator): # Enum if isinstance(base, type) and issubclass(base, Enum): + enum_name = base.__name__ extra = [] if optional: extra.append("null=True, blank=True") if default is not dc.MISSING and isinstance(default, Enum): - extra.append(f"default=Status.{default.name}") + extra.append(f"default={enum_name}.{default.name}") return DJANGO_TYPES["enum"].format( - opts=", " + ", ".join(extra) if extra else "" + enum_name=enum_name, opts=", " + ", ".join(extra) if extra else "" ) # Text fields (based on name heuristics) diff --git a/modelgen/types.py b/modelgen/types.py index b029437..aa2792c 100644 --- a/modelgen/types.py +++ b/modelgen/types.py @@ -22,7 +22,7 @@ DJANGO_TYPES: dict[Any, str] = { "list": "models.JSONField(default=list, blank=True)", "text": "models.TextField(blank=True, default='')", "bigint": "models.BigIntegerField({opts})", - "enum": "models.CharField(max_length=20, choices=Status.choices{opts})", + "enum": "models.CharField(max_length=20, choices={enum_name}.choices{opts})", } DJANGO_SPECIAL: dict[str, str] = { diff --git a/mpr/media_assets/models.py b/mpr/media_assets/models.py index 971768b..2a9414b 100644 --- a/mpr/media_assets/models.py +++ b/mpr/media_assets/models.py @@ -25,7 +25,7 @@ class MediaAsset(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) filename = models.CharField(max_length=500) file_path = models.CharField(max_length=1000) - status = models.CharField(max_length=20, choices=Status.choices, default=Status.PENDING) + status = models.CharField(max_length=20, choices=AssetStatus.choices, default=AssetStatus.PENDING) error_message = models.TextField(blank=True, default='') file_size = models.BigIntegerField(null=True, blank=True) duration = models.FloatField(null=True, blank=True, default=None) @@ -89,7 +89,7 @@ class TranscodeJob(models.Model): output_filename = models.CharField(max_length=500) output_path = models.CharField(max_length=1000, null=True, blank=True) output_asset_id = models.UUIDField(null=True, blank=True) - status = models.CharField(max_length=20, choices=Status.choices, default=Status.PENDING) + status = models.CharField(max_length=20, choices=JobStatus.choices, default=JobStatus.PENDING) progress = models.FloatField(default=0.0) current_frame = models.IntegerField(null=True, blank=True, default=None) current_time = models.FloatField(null=True, blank=True, default=None)