在models.py中出错后,必须手动重新启动runserver

时间:2012-10-06 16:22:46

标签: django

我跟随着Django的权威指南这本书,我开始注意到的一件事是,每当我在我的模型文件中发生一个错误时,服务器就会挂起并且不会自动重启错误是固定的。

这是一个例子:我用这样的行保存文件

email = models.EmailField(blank=Tru)

这引发了明显的错误和堆栈跟踪

Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <django.core.management.commands.runserver.Command object at 0x00000000025B0400>>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "C:\Python27\lib\site-packages\django\core\management\validation.py", line 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 158, in get_app_errors
    self._populate()
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 64, in _populate
    self.load_app(app_name, True)
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in import_module
    __import__(name)
  File "C:\....\models.py", line 17, in <module>
    class Author(models.Model):
  File "C:\...\models.py", line 20, in Author
    email = models.EmailField(blank=Tru)
NameError: name 'Tru' is not defined 

现在,如果我将Tru更改为True,则服务器不会重新启动。这是故意的吗?或者我的申请有问题吗?我刚刚开始学习Django,所以我不知道这是否是常见行为。

我在Windows上运行Python 2.7.3和Django 1.4.1。

1 个答案:

答案 0 :(得分:2)

不只是你 - 我偶尔也会遇到这种情况。

虽然开发服务器通常非常适合在代码更改后重新启动,但某些特别严重的错误(特别是在models.py中)有时会导致它挂起。只需要终止它(Ctrl+C),重新启动它,然后继续你的快乐方式。