# 1. Database – 100 points
class Director(models.Model):
full_name = models.CharField(max_length=120, validators=[MinLengthValidatior(2)])
birth_date = models.DateField(default='1900-01-01')
nationality = models.CharField(max_length=50, default='Unknown')
years_of_experience = models.SmallIntegerField(default=0, validators=[MinValueValidator(0)])
class Actor(models.Model):
full_name = models.CharField(max_length=120, validators=[MinLengthValidatior(2)])
birth_date = models.DateField(default='1900-01-01')
nationality = models.CharField(max_length=50, default='Unknown')
is_awarded = models.BooleanField(default=False)
last_updated = models.DateTimeField(auto_now=True)
class Movie(models.Model):
GENRE_CHOICES = (
('Action', 'Action'),
('Comedy', 'Comedy'),
('Drama', 'Drama'),
('Other', 'Other')
)
title = models.CharField(max_length=150, validatiors=[MinLengthValidatior(5)])
release_date = models.DateField()
storyline = models.TextField(null=True, blank=True)
genre = models.CharField(max_length=6, default='Other')
rating = models.DecimalField(max_digits=3, decimal_places=1, validators=[validators.MinValueValidator(0), validators.MaxValueValidator(10)], default=0)
is_classic = models.BooleanField(default=False)
is_awarded = models.BooleanField(default=False)
last_updated = models.DateTimeField(auto_now=True)
director = models.ForeignKey("Director", on_delete=models.CASCADE)
starring_actor = models.ForeignKey("Actor", null=True, on_delete=models.SET_NULL)
actors = models.ManyToManyField("Actor")