Начал писать приложение, для загрузки разного рода содержания на сайт для образования.
Структура следующая: есть “факультет” (Faculty), пример “ЭнергоМаш”
есть “курс лекции” (LectionCourse) - курс может быть как для одного факультета, так и для многих (один и тот же курс может читаться на разных факультетах), пример “Начертательная геометрия”
есть “лекция” (Lection) -те лекции, из которых состоит “курс лекций”. Опять же, одна лекция может входить в разные курсы лекций, пример “Введение в черчение” - эта конкретная лекция может читаться и в другом курсе лекций, к примеру “Черчение 3D деталей” на каком нить другом факультете.
И само содержание лекций - “Text”,
“Picture”,
“Video”,
“Audio”… Так же, каждый отдельный объект содержания может входить во множества лекций. Т.е. структура многие-ко-многим в кубе.
Привожу пример моего файла models.py
Если есть у кого какие замечания, предложения и критика, советы, напишите - не запутался ли я?
class Text(models.Model):
title = models.CharField(max_length = 150)
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
modules = models.ManyToManyField(Lection)
class Picture(models.Model):
title = models.CharField(max_length=100)
image = ImageField(upload_to='pictures')
caption = models.CharField(max_length=250, blank=True)
modules = models.ManyToManyFieldLection)
class Video(models.Model):
title = models.CharField(max_length=50)
file = models.FileField(upload_to='content/video')
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
modules = models.ManyToManyField(Lection)
class Audio(models.Model):
title = models.CharField(max_length=50)
file = models.FileField(upload_to='content/sound')
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
modules = models.ManyToManyField(Lection)
class Lection(models.Model):
title = models.CharField(max_length=50)
courses = models.ManyToManyField(LectionCourse)
class LectionCourse(models.Model):
TYPE_COURSE = (
(0, 'techical'),
(1, 'humanist'),
)
title = models.CharField(max_length=50)
type = models.IntegerField(max_length=20, choices=TYPE_COURSE, default=0)
facultet = models.ManyToManyField(Faculty)
class Faculty(models.Model):
TYPE_CHOICES = (
(0, 'FinancialEconomicManagement'),
(1, 'EnergoMash'),
(2, 'PhysMech'),
(3, 'RadioPhysics'),
)
title = models.CharField(max_length=60)
type = models.IntegerField(max_length=20, choices=TYPE_CHOICES, default=0)
Всем заранее спасибо!