title: Better way of linking multiple models in Django [database] - ManyToManyFields, ForeignKey and CharFields
body: <p>I want to link the <code>Subject</code> model with <code>Class</code> in such a way that every student belonging of <code>Class</code> model will have same subjects included by user in <code>Subject models</code> linked via <code>connect_class</code>.</p>
  <p>Inside models.py of <code>school</code> app.</p>
  <pre><code>from django.db import models
  from accounts.models import School
  
  
  class Class(models.Model):
      connect_school = models.ForeignKey(School, on_delete=models.SET_NULL, null=True)
      class_list = models.CharField(max_length=95)
      def __str__(self):
              return self.class_list
  
  class Subject(models.Model):
      connect_class = models.ForeignKey(Class, on_delete=models.SET_NULL, null=True)
      subjects = models.CharField(max_length=95, null=True)
      def __str__(self):
          return self.subjects
  </code></pre>
  <p>Inside models.py of <code>student</code> app:</p>
  <pre><code>from django.db import models
  from django.utils import timezone
  import nepali_datetime
  from school.models import Class, Subject
  from accounts.models import School
  connect_school = models.ForeignKey(School, on_delete=models.CASCADE, null=True)
  ...name,gender, etc. ...
  Class = models.ForeignKey(Class, on_delete=models.CASCADE, null=True)
  subject = models.ManyToManyField(Subject)
  </code></pre>
  <p>Inside models.py of <code>accounts</code>.</p>
  <pre><code>from django.db import models
  from django.utils import timezone
  import nepali_datetime
  
  # from django.contrib.auth.models import User
  # Create your models here.
  
  class School(models.Model):
      school_name = models.CharField(max_length=50)
      ...
      username = models.CharField(max_length=100)
      password = models.CharField(max_length=95)
      ...
      principal = models.CharField(max_length=150, default='')
      ....
  </code></pre>