You don't actually need to use self.Student.Use this
class Student(models.Model):
name = models.CharField(max_length=20)
address = models.CharField(max_length=200)
class Player(models.Model):
student = models.ForeignKey(self.Student, on_delete=models.CASCADE, null=True, blank=True)
sports_name = models.CharField(max_length=20)
Don't forget to use
python manage.py makemigrations and python manage.py migrate
after you had done changes in model.
In some point -in-time you might want to use same model to have ForeignKey field. For that you may use self or the current model you want to make it as a Foreign Key('self' or 'Player') as string
class Student(models.Model):
name = models.ForeignKey(models.CharField(max_length=20))
address = models.CharField(max_length=20)
related_student = models.ForeignKey(Student, on_delete = models.CASCADE, null=True, blank=True)
For this Example you may refer.
Can I Make a foreignKey to same model in django?