Django1.8和Mongoengine NameError:name' IntegerField'没有定义

时间:2017-07-07 07:41:49

标签: django mongodb mongoengine

我正在使用mongoengine和Django 1.8,我的项目需要连接到一个MongoDB实例,而另一个实例需要sql.But我收到此错误 -

命令提示符 -

python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/var/www/html/admin_python/orahienv/local/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/var/www/html/admin_python/admin_app/models.py", line 212, in <module>
    class location(Document):
  File "/var/www/html/admin_python/admin_app/models.py", line 213, in location
    user_id = IntegerField(blank=True, null=True)
NameError: name 'IntegerField' is not defined

我的setting.py文件 -

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'admin_db',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',
    },

}

from mongoengine import connect
connect(
db='pom',
username='admin',
password='root',
host='mongodb://admin:root@localhost'
)

所以首先我决定完成与mongodb相关的所有工作,然后我将转到sql.This是mongodb数据库模型的代码
我的model.py文件 -

class location(Document):
        user_id = IntegerField(blank=True, null=True)
        name = CharField(max_length=100)
        loc_lon = FloatField(blank=True, null=True)
        timestamp = IntegerField(blank=True, null=True)
        activity = StringField()
        lot_lat = FloatField(blank=True, null=True)
        batter_status = StringField()
        address = StringField()
        date_created = DateTimeField(auto_now_add=True)

并且plz可以引用任何MongoEngine和Django1.8教程......

2 个答案:

答案 0 :(得分:2)

timestamp = IntField(blank=True, null=True)

但最好使用

timestamp = DateTimeField(blank=True, null=True) 

作为时间戳

答案 1 :(得分:0)

IntergerField无效,请改用IntField

user_id = IntField(blank=True, null=True)

参考:http://docs.mongoengine.org/apireference.html#mongoengine.fields.IntField