2013-01-16 42 views
0

我試圖用GAE,Django構建一個Web應用程序。用戶註冊將是userena。我已經使用django-nonrel和所有設置來獲得第一部分工作,並且我正在嘗試將syncdb用於userena。我一直在收到這個錯誤,請幫我解決這個問題。Google App引擎,Django,userena,數據庫設置

BB8265:epapyri-django$ sudo django-admin.py syncdb 
Password: 
Traceback (most recent call last): 
    File "/usr/local/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module> 
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal 
    File "/Library/Python/2.7/site-packages/django/core/management/sql.py", line 6, in <module> 
    from django.db import models 
    File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 11, in <module> 
    if DEFAULT_DB_ALIAS not in settings.DATABASES: 
    File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 40, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

settings.py和manage.py位於同一個目錄中,我在添加此插件之前沒有此問題。

數據庫部的settings.py如下:

# Activate django-dbindexer for the default database 
DATABASES['native'] = DATABASES['default'] 
DATABASES['default'] = {'ENGINE': 'dbindexer', 'TARGET': 'native'} 
AUTOLOAD_SITECONF = 'indexes' 

INSTALLED_APPS = (
# 'django.contrib.admin', 
    'django.contrib.contenttypes', 
    'django.contrib.auth', 
    'django.contrib.sessions', 
    'djangotoolbox', 
    'autoload', 
    'dbindexer', 
    # social_auth 
    'httplib2', 
    'openid', 
    'oauth2', 
    'social_auth', 
    #userena 
    'userena', 
    'guardian', 
    'easy_thumbnails', 
    'accounts', 
    # djangoappengine should come last, so it can override a few manage.py commands 
    'djangoappengine', 
) 

,這是一次我RUNSERVER

BB8265:epapyri-django$ sudo django-admin.py runserver 
Traceback (most recent call last): 
    File "/usr/local/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 8, in <module> 
    from django.core.servers.basehttp import AdminMediaHandler, run, WSGIServerException, get_internal_wsgi_application 
    File "/Library/Python/2.7/site-packages/django/core/servers/basehttp.py", line 26, in <module> 
    from django.views import static 
    File "/Library/Python/2.7/site-packages/django/views/static.py", line 95, in <module> 
    template_translatable = ugettext_noop(u"Index of %(directory)s") 
    File "/Library/Python/2.7/site-packages/django/utils/translation/__init__.py", line 75, in gettext_noop 
    return _trans.gettext_noop(message) 
    File "/Library/Python/2.7/site-packages/django/utils/translation/__init__.py", line 48, in __getattr__ 
    if settings.USE_I18N: 
    File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 40, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

[編輯]

予移除INSTALL_APP非Django項目,將django.models導入到我的帳戶/ MyProfile以及.datastore上的chmod 777,因爲每次修改它時都不會要求權限。

{} File "/git/ePapyri/epapyri-django/djangoappengine/db/base.py", line 160, in _value_for_db raise DatabaseError("Only strings and positive integers " django.db.utils.DatabaseError: Only strings and positive integers may be used as keys on GAE.

回答

0

你爲什麼要使用django-admin.py運行執行syncdb和RUNSERVER?您應該使用manage.py

而且您絕對不應該使用sudo來運行其中之一。

(另請注意你的INSTALLED_APPS似乎是廢話:它包含了一大堆,在所有純Python庫像httplib2的和的oauth2其中有沒有業務存在的。)

編輯

首先,你應該編輯你的問題來添加回溯。

其次,錯誤信息非常明確:您的accounts/models.py文件中沒有導入django.db.models

第三,將非Django庫包含在INSTALLED_APPS中仍然是無稽之談。根本沒有必要這樣做。並且您的數據存儲不應該是使用sudo創建的 - 可以刪除並重新創建它,也可以使用chmod使其可供普通用戶訪問。

+0

感謝您的回覆Daniel,我很感激。我將django設置爲使用social-auth,其中一些庫就是用於這一部分的。也因爲它與數據存儲一起工作,它總是抱怨.datastore文件的權限,這就是爲什麼我使用sudo。這是我使用管理後得到的消息。 –

+0

這也是我遵循的使用說明,http://docs.django-userena.org/en/latest/installation.html#required-settings –

+0

我發現了這個問題。 Django-Nonrel不支持models.OneToOneField。這就是爲什麼它會抱怨它,我如何解決它? –