1
장고를 성공적으로 설치했으며 현재 Mongoengine과 함께 사용하려고합니다. 나는 다음과 같은 오류가 응용 프로그램을 설정 한 후 "파이썬 manage.py makemigrate"를 사용하는 경우 :Windows에서 Mongo db로 장고 설치시 문제가 발생했습니다. 8
$ PATH $으로 내 프로젝트의 경로입니다$PATH$\env\lib\site-packages\mongoengine\django\mongo_auth\models.py:14: RemovedInDjango18Warning: `MongoUserManager.get_query_set` method should be renamed `get_queryset`.
class MongoUserManager(UserManager):
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "$PATH$\env\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
utility.execute()
File "$PATH$\env\lib\site-packages\django\core\management\__init__.py", line 354, in execute
django.setup()
File "$PATH$\env\lib\site-packages\django\__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "$PATH$\env\lib\site-packages\django\apps\registry.py", line 108, in populate
app_config.import_models(all_models)
File "$PATH$\env\lib\site-packages\django\apps\config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "$PATH$\env\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "$PATH$\myproject\polls\models.py", line 4, in <module>
class Question(models.Model):
File "$PATH$\myproject\polls\models.py", line 6, in Question
pub_date = models.DataTimeField('date published')
AttributeError: 'module' object has no attribute 'DataTimeField'
.
from django.db import models
#from mongoengine import *
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DataTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
임 사용 장고 v1.7.1 및 mongoengine v0.8.0 :
응용 프로그램은 다음 models.py이 포함되어 있습니다. mongo db를 포함하도록 편집 한 프로젝트의 settings.py 파일에서 오류가 발생할 수도 있습니다.
"""
Django settings for myproject project.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'xg0wnp^w)[email protected]#^v45**4^3v-at#ktre=^n#cw2!6(q__gq'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'mongoengine.django.mongo_auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'myproject.urls'
WSGI_APPLICATION = 'myproject.wsgi.application'
import mongoengine
# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
#DATABASES = {
# 'default' : {
# 'ENGINE' : 'django_mongodb_engine',
# 'NAME' : 'my_database'
# }
#}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.dummy',
# }
#}
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
MONGOENGINE_USER_DOCUMENT = 'mongoengine.django.auth.User'
#SESSION_ENGINE = 'mongoengine.django.sessions'
#SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'
#_MONGODB_USER = 'mongouser'
#_MONGODB_PASSWD = 'password'
#_MONGODB_HOST = 'thehost'
#_MONGODB_NAME = 'thedb'
#_MONGODB_DATABASE_HOST = \
# 'mongodb://%s:%[email protected]%s/%s' \
# % (_MONGODB_USER, _MONGODB_PASSWD, _MONGODB_HOST, _MONGODB_NAME)
#mongoengine.connect(_MONGODB_NAME, host=_MONGODB_DATABASE_HOST)
#AUTHENTICATION_BACKENDS = (
# 'mongoengine.django.auth.MongoEngineBackend',
#)
# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
STATIC_URL = '/static/'
또한 가상 프로젝트를 사용하여 가상 환경을 만듭니다. 이것도 프로그램에 영향을 미치는지 확실하지 않습니다.
아 ... thx. 하지만 지금 어떤 이유로 나는 다음과 같은 오류가 발생합니다 : "알 수없는 명령 : 'makemigrate'". 이것은 외관상으로는 오류가 일찍 발생한 이후로 이상하게 보입니다. – Hagadol
오, 신경 쓰지 마세요. 명령에 다른 오타를 만들었습니다. 어쨌든 당신의 대답이 문제를 해결했습니다. 감사. – Hagadol
@ 하갈 돌 : 지금까지 알아 내지 못했을 경우를 대비하여. 명령의 정확한 이름은'makemigrate'가 아니라'makemigrate'입니다. 첫 번째 오류가 발생한 이유는 manage.py가 마이그레이션을 만들기 전에'manage.py validate'를 실행하기 때문입니다. –