2016-08-28 6 views
0

Я использовал django-social-auth в своем проекте для входа в систему, используя facebook, но затем я не смог войти на страницу администрирования django даже после выхода из facebook.django admin не распознается после включения django-social-auth backends

Я думал, что я забыл свой пароль и попытался изменить его из оболочки получили:

>>> from django.contrib.auth.models import User 
>>> User.objects.filter(is_superuser=True) 
<QuerySet []> 

Вот мой setting.py файл:

# Application definition 

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'social.apps.django_app.default', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'portfolio', 
    ] 

AUTHENTICATION_BACKENDS = (
    # For Facebook Authentication 
    'social.backends.facebook.FacebookOAuth2', 
    # Default Django Auth Backends 
    'django.contrib.auth.backends.ModelBackend', 
    ) 


TEMPLATES = [ 
    { 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 

      # Setting of Template Context Processors for Social Auth 
      'social.apps.django_app.context_processors.backends', 
      'social.apps.django_app.context_processors.login_redirect', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

models.py:

from django.db import models 

class Personal(models.Model): 
    name = models.CharField(max_length=100) 
    address = models.CharField(max_length=100) 
    email = models.EmailField() 
    phone = models.CharField(max_length=100) 
    status = models.CharField(max_length=100) 
    cover = models.CharField(max_length=100) 

И у меня есть файл form.py:

from django import forms 
from django.forms import ModelForm 
from . import models as m 

class PersoForm(ModelForm): 
    class Meta: 
     model = m.Personal 
     fields = ['name', 'status', 'address', 'email', 'phone', 'cover'] 

Я знаю, что могу создать нового суперпользователя, но я хочу понять, почему это происходит, и как я могу использовать как django-admin, так и django-social-auth?

Я ценю некоторые разъяснения здесь, я новичок в каркасе django.

+0

У вас есть набор 'AUTH_USER_MODEL'? «User.objects.all()« возвращает пользователя администратора среди других? –

+0

Если у вас нет пользовательской модели, то я сомневаюсь, что ваш администратор действительно существует –

+0

@MosesKoledoye 'AUTH_USER_MODEL' не установлен, и' User.objects.all() 'показывает только пользователя facebook. Я читаю об этом сейчас. –

ответ

0

Вы запустили python manage.py createsuperuser? Похоже, у вас нет суперпользователя. Как вы вошли в admin?

+0

Я создал суперпользователя, используя команду выше, я ввел имя пользователя вместо администратора и пароль. Я зарегистрировал свою модель в myapp/admin.py и управлял данными с страницы администрирования django. –

Смежные вопросы