У меня есть две модели, курс и courseDate , для моих курсов я хочу динамически возвращать связанный объект на основе следующей доступной даты: next_course_date
.
1 курс имеет множество дат курса .
Это должно вернуть следующий экземпляр courseDate для каждого курса.
Нужно ли создавать поле отношения для этого и изменить значение с помощью метода?
class Course(models.Model):
class Meta:
verbose_name = "Kurs"
verbose_name_plural = "Kurse"
uuid = models.UUIDField(default=uuid.uuid4, editable=False)
owner = models.ForeignKey(Company, related_name='courses', on_delete=models.DO_NOTHING)
name = models.CharField(max_length=60)
categories = models.ManyToManyField(Category, related_name='courses')
next_course_date = models.IntegerField(default=0)
access_level = models.IntegerField(default=1)
status = models.IntegerField(default=1)
published = models.BooleanField(default=False)
banner = models.URLField(null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class CourseDate(models.Model):
class Meta:
verbose_name = "Kurstermin"
verbose_name_plural = "Kursetermine"
uuid = models.UUIDField(default=uuid.uuid4, editable=False)
owner = models.ForeignKey(Company, related_name='course_dates', on_delete=models.DO_NOTHING)
course = models.ForeignKey(Course, on_delete=models.DO_NOTHING, related_name='course_dates')
lecturers = models.ManyToManyField(User, related_name='main_lecturers')
begin = models.DateTimeField()#not editable
end = models.DateTimeField()#not editable
date_details = models.DateTimeField(auto_now=True, auto_now_add=False)
access_level = models.IntegerField(default=1)
status = models.IntegerField(default=1)
published = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)