Django — Ошибка социальной регистрации.промежуточное программное обеспечение

#python #django #django-middleware

#питон #джанго #django-промежуточное программное обеспечение #python #django

Вопрос:

Только сейчас я клонирую свое удаленное репозиторий со своего сервера на свой компьютер с помощью mercurial.

Я изменил settings.py для установки sqlite3 в качестве ядра базы данных и я попытался запустить встроенный веб-сервер Django:

 $ python manage.py runserver
Validating models...

0 errors found
Django version 1.3, using settings 'myproj.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 283, in run
    self.result = application(self.environ, self.start_response)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__
    return self.application(environ, start_response)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 250, in __call__
    self.load_middleware()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 47, in load_middleware
    raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
ImproperlyConfigured: Error importing middleware socialregistration.middleware: "No module named facebook"
[26/May/2011 22:22:54] "GET / HTTP/1.1" 500 959
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 283, in run
    self.result = application(self.environ, self.start_response)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__
    return self.application(environ, start_response)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 250, in __call__
    self.load_middleware()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 47, in load_middleware
    raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
ImproperlyConfigured: Error importing middleware socialregistration.middleware: "No module named facebook"
  

На моем сервере все в порядке. Почему это в localhost?

— UDPATE

Установил pyfacebook и исправил это. Теперь я получаю эту ошибку при посещении /

 Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/

Django Version: 1.3
Python Version: 2.7.1
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'myapp',
 'avatar',
 'socialregistration']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.csrf.CsrfResponseMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'socialregistration.middleware.FacebookMiddleware')


Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  89.                     response = middleware_method(request)
File "/Users/fredcollins/Desktop/myproj/socialregistration/middleware.py" in process_request
  23.         fb_user = facebook.get_user_from_cookie(request.COOKIES,

Exception Type: AttributeError at /
Exception Value: 'module' object has no attribute 'get_user_from_cookie'
  

Ответ №1:

Вы забыли установить facebook на свой сервер.

Комментарии:

1. и затем не забудьте выполнить syncdb

2. На моем сервере все в порядке. Проблема локальная.

3. Все это работает. Решение: github.com/flashingpumpkin/django-socialregistration/issues/37

4.@Ignacio, хотя я уверен, что ваш ответ правильный, я не понимаю, зачем pyfacebook это нужно. Это нигде не упоминается в документах для django-socialregistration. И ссылка описывает это как «клиентскую библиотеку для Facebook API» — не для этого ли предназначен django-socialregistration? 🙂

5. @John: Нет, потому что глупо дублировать код, который уже существует в удобной форме.