change enum

This commit is contained in:
2026-05-09 02:30:47 -06:00
parent 78158471b2
commit c466dfd3c6
23 changed files with 451 additions and 503 deletions

View File

@@ -3,16 +3,22 @@ from django.db import models
from account.models import User
class TutorialType(models.TextChoices):
PYTHON = "python", "Python"
C = "c", "C"
class ExerciseType(models.TextChoices):
MCQ = "mcq", "选择题"
SORT = "sort", "代码排序"
FILL = "fill", "代码填空"
class Tutorial(models.Model):
TYPE_CHOICES = [
('python', 'Python'),
('c', 'C'),
]
title = models.CharField(max_length=128)
content = models.TextField()
code = models.TextField(null=True, blank=True)
type = models.CharField(max_length=10, choices=TYPE_CHOICES, default='python')
type = models.CharField(max_length=10, choices=TutorialType.choices, default=TutorialType.PYTHON)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
@@ -21,21 +27,15 @@ class Tutorial(models.Model):
class Meta:
db_table = "tutorial"
ordering = ['order', '-created_at']
ordering = ["order", "-created_at"]
def __str__(self):
return self.title
class Exercise(models.Model):
TYPE_CHOICES = [
("mcq", "选择题"),
("sort", "代码排序"),
("fill", "代码填空"),
]
tutorial = models.ForeignKey(Tutorial, on_delete=models.CASCADE, related_name="exercises")
type = models.CharField(max_length=16, choices=TYPE_CHOICES)
type = models.CharField(max_length=16, choices=ExerciseType.choices)
data = models.JSONField()
order = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
@@ -45,4 +45,4 @@ class Exercise(models.Model):
ordering = ["order", "created_at"]
def __str__(self):
return f"{self.get_type_display()} (Order {self.order})"
return f"{self.get_type_display()} (Order {self.order})"