在 django 中对 6 位数字邮政编码建模

use*_*207 1 python django django-models django-validation

我想在 Django 中定义一个 6 位数字邮政编码models.py

起初,我尝试过这个;

postal_code = models.PositiveIntegerField(blank=False)

但是,邮政编码可以有前导零,例如000157。PositiveIntegerField 不适合它。

如果我使用CharField,该字段可以接受对邮政编码无效的字母。

如何在 django models.py 中定义 6 位数字邮政编码?

我正在使用 Django v4。

Wil*_*sem 10

您可以使用验证器,例如通过使用RegexValidator\xc2\xa0 [Django-doc]

\n
from django.core.validators import RegexValidator\nfrom django.db import models\nfrom django.utils.text import gettext_lazy as _\n\n\nclass MyModel(models.Model):\n    postal_code = models.CharField(\n        max_length=6,\n        validators=[RegexValidator(\'^[0-9]{6}$\', _(\'Invalid postal code\'))],\n    )
Run Code Online (Sandbox Code Playgroud)\n