Best approach for an e-learning platform

Hello! I have little experience in coding. My goal is to create a platform for self-learning with the following structure:

  • user chooses subject (biology, maths, language etc.)
  • user chooses unit
  • user goes through multi-step blocks of information. So first he sees a block with introduction, clicks “next” and sees next piece of information, reads it and completes a quiz or another kind of test at the end, then again clicks “next” and so on.

The problem is that I don’t want it to be a simple blog. Units should be quite different. Some units will have many blocks of information and many various tests. Some will have only a few and a couple of tests. There may be unique features in some unit. So I am thinking how to effectively organize my code for this. My current idea basically is:

class Subject(models.Model):
    # title, description and other general fields

class Unit(models.Model):
    # title, description and other general fields
    # ForeignKey to Subject

class Step(models.Model):
    # Text field with CKEditor in admin
    text = models.TextField()
    # Fields for extra pieces of information that need unique styling
    did_you_know = models.TextField()
    remember = models.TextField()
    make_research = models.TextField()
    # Connect this block of information with a unit and use inline in admin
    unit = models.ForeignKey('Unit', on_delete=models.CASCADE)
    # Give each block a number to keep order
    number = models.PositiveIntegerField()

class Quiz(models.Model):
    # title, question, answers, correct answer and other fields
    # ForeignKey to Step. In admin choose the needed unit and step

# Models for other types of tests

So in this way I can keep all the data in the database and I don’t need to create lots of html-files for each unit. I still feel a little limited (for example, a quiz has to be at the end of the block, I cannot put it between certain paragraphs of the “text” field) but it is my best idea at the moment. I would be happy to receive any feedback on this. I have learned only one simple PHP framework (CodeIgniter 4) so far and am currently learning how to use Django. Is this framework suitable for my needs? Or perhaps there are better approaches/frameworks that I don’t know about?

Than you for your help!