首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性错误: at /auth/login/facebook/ Exception值:操作符

属性错误: at /auth/login/facebook/ Exception值:操作符
EN

Stack Overflow用户
提问于 2016-03-12 11:53:29
回答 1查看 179关注 0票数 2

是在django中使用以下配置

cassandra驱动程序(3.1.0)

Django (1.9.4)

django-cassandra引擎(0.7.0)

django-oauth工具包(0.10.0)

django-rest-framework-social-oauth2 (1.0.4)

djangorestframework (3.3.2)

oauthlib (1.0.3)

python-social-auth (0.2.14)

Python2.7.9

我的网站settings.py

代码语言:javascript
复制
INSTALLED_APPS = [
'django_cassandra_engine',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'oauth2_provider',
'userlogin',
'social.apps.django_app.default',
'rest_framework_social_oauth2'
]

DATABASES = {
    'default': {
        'ENGINE': 'django_cassandra_engine',
        'NAME': 'sample',
        'TEST_NAME' : 'test_sample',
        'HOST': 'localhost'
    }
}

AUTHENTICATION_BACKENDS = (
        'social.backends.facebook.FacebookOAuth2',
        'social.backends.facebook.FacebookOAuth2',
        'social.backends.google.GoogleOAuth2',
        'social.backends.twitter.TwitterOAuth',
        'django.contrib.auth.backends.ModelBackend',
)

LOGIN_REDIRECT_URL = '/'

Home.html

代码语言:javascript
复制
{% extends 'base.html' %} {% block main %}
<div>
  <h1>Third-party authentication demo</h1>

  <p>
    <ul>
      {% if user and not user.is_anonymous %}
      <li>
        <a>Hello {{ user.get_full_name|default:user.username }}!</a>
      </li>
      <li>
        <a href="{% url 'auth:logout' %}?next={{ request.path }}">Logout</a>
      </li>
      {% else %}
      <li>
        <a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}">Login with Facebook</a>
      </li>
      <li>
        <a href="{% url 'social:begin' 'google-oauth2' %}?next={{ request.path }}">Login with Google</a>
      </li>
      <li>
        <a href="{% url 'social:begin' 'twitter' %}?next={{ request.path }}">Login with Twitter</a>
      </li>
      {% endif %}
    </ul>
  </p>
</div>
{% endblock %}

Views.py

代码语言:javascript
复制
  from django.shortcuts import render
代码语言:javascript
复制
from django.shortcuts import render_to_response
from django.template.context import RequestContext

def home(request):
        context = RequestContext(request,
                                {'request': request,
                                'user': request.user})
        return render_to_response('home.html',
                                context_instance=context)

URLS.py

代码语言:javascript
复制
urlpatterns = patterns('',
url(r'^$', 'userlogin.views.home', name='home'),
url(r'^admin/', include(admin.site.urls)),
url(r'^auth/', include('rest_framework_social_oauth2.urls')),
url('', include('social.apps.django_app.urls', namespace='social')),
url('', include('django.contrib.auth.urls', namespace='auth')),
)

当我访问facebook自述时,我收到了以下错误。

代码语言:javascript
复制
Traceback:

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  235.                 response = middleware_method(request, response)

File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/middleware.py" in process_response
  50.                         request.session.save()

File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in save
  80.             return self.create()

File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in create
  49.             self._session_key = self._get_new_session_key()

File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in _get_new_session_key
  155.             if not self.exists(session_key):

File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in exists
  45.         return self.model.objects.filter(session_key=session_key).exists()

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in exists
  651.             return self.query.has_results(using=self.db)

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/query.py" in has_results
  501.         return compiler.has_results()

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in has_results
  819.         return bool(self.execute_sql(SINGLE))

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  837.             sql, params = self.as_sql()

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in as_sql
  389.             where, w_params = self.compile(self.where) if self.where is not None else ("", [])

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in compile
  366.             sql, params = node.as_sql(self, self.connection)

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/where.py" in as_sql
  79.                 sql, params = compiler.compile(child)

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in compile
  366.             sql, params = node.as_sql(self, self.connection)

File "/usr/local/lib/python2.7/site-packages/django/db/models/lookups.py" in as_sql
  160.         rhs_sql = self.get_rhs_op(connection, rhs_sql)

File "/usr/local/lib/python2.7/site-packages/django/db/models/lookups.py" in get_rhs_op
  164.         return connection.operators[self.lookup_name] % rhs

File "/usr/local/lib/python2.7/site-packages/django_cassandra_engine/base/__init__.py" in __getattr__
  103.         raise AttributeError(attr)

Exception Type: AttributeError at /auth/login/facebook/
Exception Value: operators

有人能告诉我我在这里做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-12 09:53:16

您需要将django_cassandra_engine设置为辅助数据库后端:

代码语言:javascript
复制
from cassandra import ConsistencyLevel

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'cassandra': {
        'ENGINE': 'django_cassandra_engine',
        'NAME': 'db',
        'USER': 'user',
        'PASSWORD': 'pass',
        'TEST_NAME': 'test_db',
        'HOST': '127.0.0.1',
        'OPTIONS': {
            'replication': {
                'strategy_class': 'SimpleStrategy',
                'replication_factor': 1
            },
            'connection': {
                'consistency': ConsistencyLevel.LOCAL_ONE,
                'retry_connect': True
            },
            'session': {
                'default_timeout': 10,
                'default_fetch_size': 10000
                # + All options for cassandra.cluster.Session()
            }
        }
    }
}

如果您有使用f.ex的计划。django.contrib.authdjango.contrib.admin,那么django_cassandra_engine必须是您的辅助数据库后端(不是默认的)。

进一步说明:usage/#cassandra-as-secondary-database

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35957310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档