NameError:name'(Whatever)'未定义

时间:2012-06-23 15:48:50

标签: python google-app-engine

这个错误让我发疯。

我正在开发App Engine Python应用程序。这些是类:

from google.appengine.ext import db

class Usuario(db.Model):
  user = db.UserProperty()
  nombre = db.StringProperty(required = True)
  pasaporte = db.ReferenceProperty(Pasaporte)

class Pasaporte(db.Model):
  direccion = db.StringProperty()
  telefono = db.PhoneNumberProperty()

class Sindicato(db.Model):
  nombre = db.StringProperty(required = True)
  direccion = db.StringProperty()
  telefono = db.PhoneNumberProperty()

class Sede(db.Model):
  nombre = db.StringProperty()
  direccion = db.StringProperty()
  telefono = db.PhoneNumberProperty()
  descripcion = db.StringProperty()

class Servicio(db.Model):
  nombre = db.StringProperty()
  descripcion = db.StringProperty()
  prestador = db.StringProperty()
  condiciones = db.StringListProperty()

class UsuarioServicio(db.Model):
  usuario = db.ReferenceProperty(Usuario, collection_name='servicios_collection')
  servicio = db.ReferenceProperty(Servicio, collection_name='usuario_collection')
  fechaRegistro = db.DateTimeProperty(auto_now_add=True)

我不知道为什么,但这是我在localhost中测试我的应用程序时得到的错误消息:

NameError: name 'Pasaporte' is not defined

UsuarioServicio类中,我引用了其他类而没有出现任何错误。

如果有帮助,我正在使用Python2.7解释器在Eclipse-Pydev上使用Kubuntu 10-10。无论如何,如果我尝试通过'dev_appserver.py'命令从终端启动应用程序,则无论如何都会显示错误。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:3)

PasaporteUsario中使用之后才会被声明。切换这些类的顺序,就可以了。