Ale*_*lla 20 django django-models django-admin
我有这个模型字段:
id_student = models.PositiveIntegerField(primary_key=True, max_length=10)
Run Code Online (Sandbox Code Playgroud)
该max_length限制不起作用.我可以登录管理员并创建一个id超过10个字符的学生.我怎么解决这个问题?
Ala*_*air 46
Django忽略max_length整数字段,并会在Django 1.8+中警告你.有关更多详细信息,请参见票据23801.
您可以使用最大值验证器,
from django.core.validators import MaxValueValidator
class MyModel(models.Model):
...
id_student = models.PositiveIntegerField(primary_key=True, validators=[MaxValueValidator(9999999999)])
Run Code Online (Sandbox Code Playgroud)
或者使用a CharField来存储id,并使用正则表达式验证器来确保id完全由数字组成.这将具有允许以零开头的ID的优点.
class MyModel(models.Model):
...
id_student = models.CharField(primary_key=True, max_length=10, validators=[RegexValidator(r'^\d{1,10}$')])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25559 次 |
| 最近记录: |