models.py for books應用的內容。Django模型手機字段
from django.db import models
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
class Author(models.Model):
name = models.CharField(max_length=30, unique=True)
email = models.EmailField(max_length=50)
phone = models.IntegerField(max_length=10, unique=True, validators=[RegexValidator(regex='^\d{10}$', message='Length has to be 10', code='Invalid number')])
# phone = models.IntegerField(max_length=10)
def __unicode__(self):
return self.name
在這裏的Author類,我要手機號碼只接受長10位,我會用一個IntegerField如果它有一個MIN_LENGTH屬性。
現在,這裏是我的Django的殼
>>> from books.models import *
>>> p = Author(name='foo', email='[email protected]', phone='962027')
>>> p.save()
>>>
對於這種嘗試,應該不是引發錯誤說手機領域是無效的(因爲它不具有10位數字)?
我檢查了表books_author,並添加了該行。
我在這裏做錯了什麼?請幫忙。
你沒有做錯任何事。但請注意,您指定了'max_length',該字段可以具有的最大長度,並且像「962027」這樣的值不會違反此規則。 – Bonifacio2
但它確實破壞了RegexValidator。 – Albin