Django ignora max_length
per i campi integer e ti avviserà in Django 1.8+. Vedi ticket 23801 per maggiori dettagli.
È possibile utilizzare un valore massimo di convalida,
from django.core.validators import MaxValueValidator
class MyModel(models.Model):
...
id_student = models.PositiveIntegerField(primary_key=True, validators=[MaxValueValidator(9999999999)])
o utilizzare un CharField
per memorizzare l'ID, e utilizzare un validatore regex per assicurare che l'ID è realizzata interamente in cifre. Ciò avrebbe il vantaggio di consentire id che iniziano con zero.
class MyModel(models.Model):
...
id_student = models.CharField(primary_key=True, max_length=10, validators=[RegexValidator(r'^\d{1,10}$')])