class Curso(models.Model):
titulo = models.CharField(max_length=20, default=None, verbose_name='Título do curso')
descricao = models.TextField(verbose_name='Descrição')
professor = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='cursos')
imagem_capa = models.ImageField(upload_to='cursos/imagem_capa')
duracao_curso = models.CharField(max_length=30, verbose_name='Duração do curso', default=0)
status_choices = (
('P', 'Pendente'),
('A', 'Aprovado'),
('R', 'Rejeitado'),
)
status = models.CharField(max_length=1,choices=status_choices, default='P')
categoria_choices = (
('DS', 'Ciência De Dados'),
('AD', 'Analise De Dados'),
('IA', 'Inteligência Artificial'),
('DB', 'Desenvolvimento Web Backend'),
('DF', 'Desenvolvimento Web Frontend'),
('O', 'Outro'),
)
categoria = models.CharField(max_length=2, choices=categoria_choices, verbose_name='Categoria')
class Meta:
verbose_name = "Curso"
verbose_name_plural = "Cursos"
def __str__(self):
return self.titulo
def clean(self):
if not all([self.titulo, self.descricao, self.imagem_capa, self.categoria]):
raise ValidationError('Preencha todos os campos para prosseguir.')
def save(self, *args, **kwargs):
self.clean()
super().save(*args, **kwargs)
class Modulo(models.Model):
curso = models.ForeignKey(Curso, on_delete=models.CASCADE, default=None, related_name='modulos')
titulo = models.CharField(max_length=50, verbose_name='Título do módulo')
descricao = models.TextField(verbose_name='Descrição do módulo', null=True)
qtd_aulas = models.CharField(max_length=20, verbose_name='Quantidade de aulas')
class Meta:
verbose_name = 'Módulo'
verbose_name_plural = 'Módulos'
def __str__(self):
return self.titulo
def clean(self):
if not all([self.titulo, self.descricao]):
raise ValidationError('Preencha todos os campos para prosseguir.')
def save(self, *args, **kwargs):
self.clean()
super().save(*args, **kwargs)