Creating models for diverse content
You plan to add different types of content to the course modules, such as text, images, files, and videos. Therefore, you need a versatile data model that allows you to store diverse content. In Chapter 6, Tracking User Actions, you learned the convenience of using generic relations to create foreign keys that can point to the objects of any model. You are going to create a Content
model that represents the modules' contents, and define a generic relation to associate any kind of content.
Edit the models.py
file of the courses
application and add the following imports:
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.fields import GenericForeignKey
Then, add the following code to the end of the file:
class Content(models.Model):
module = models.ForeignKey(Module,
related_name='contents',
on_delete=models.CASCADE...