NameError:name' RegexValidator'没有定义

时间:2014-05-22 09:46:24

标签: python django python-2.7 django-models

这是我的models.py。

中的代码
from django.db import models

class Person(models.Model):
     contactNumber = models.IntegerField(max_length = 11, unique = True, validators = [[RegexValidator(regex='^\d{11}$', message='Length has to be 11 numbers including 0', code='Invalid number')]])
     picture = models.ImageField(upload_to = 'folder_name', default = 'folder_name/default-image.jpg')
     jobTitle = models.CharField(max_length = 30)

当我运行python manage.py sql individual时,我收到contactNumber字段的错误。

NameError: name 'RegexValidator' is not defined

和图片字段的错误。

django.core.exceptions.ImproperlyConfigured: Neither Pillow nor PIL could be imported: No module named Image

我是Python和Django的新手。我该怎么做才能纠正这两个字段?

2 个答案:

答案 0 :(得分:10)

它是基本的Python,为了使用你需要的任何东西来定义它或在当前模型中导入它。在您的情况下,您需要在模型文件的顶部执行from django.core.validators import RegexValidator

对于第二个,错误消息告诉您需要知道的所有内容:您需要在系统中安装Pillow或(不太优选)PIL。 ImageField的文档提到了这一点,并提供了相关链接。

答案 1 :(得分:4)

您可能需要导入

 from django.core.validators import RegexValidator

您还需要先安装Pillow才能使用它