2016-06-29 1 views
0

簡単な質問。私はそのマネージャでカスタムユーザモデルを実装していました。登録は素晴らしいですが、ユーザがログインするたびにAnonymousUserが表示されます。これは私がcutsomバックエンドを実装する必要があることを意味しますか?はいの場合、カスタムユーザモデルのカスタムバックエンドの例を誰にでも教えてもらえますか? 種類は EDITについて:ここに私の設定はdjangoのカスタムバックエンドが必要ですか?私のUserモデルがカスタムの場合は?

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'custom_user' , 
     ] 

    ROOT_URLCONF = 'jam.urls' 



    WSGI_APPLICATION = 'jam.wsgi.application' 
    AUTHENTICATION_BACKENDS = ('custom_user.backends.ClientAuthBackend', 'django.contrib.auth.backends.ModelBackend') 

    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.mysql', 
      'NAME':'test3', 
      'USER':'root', 
      'PASSWORD':'', 
     } 
    } 

     AUTH_USER_MODEL='custom_user.EmailUser' 


    LANGUAGE_CODE = 'en-us' 

    TIME_ZONE = 'UTC' 

    USE_I18N = True 

    USE_L10N = True 

    USE_TZ = True 


    STATIC_URL = '/static/' 

ファイルであり、これはbackends.py

class ClientAuthBackend(object): 
    def authenticate(self, username=None, password=None): 
       try: 
        user = EmailUser.objects.get(email=username) 
        if EmailUser.check_password(password, user.password): 
          return user 
      except EmailUser.DoesNotExist: 
        return None 
    def get_user(self, user_id): 
      try: 
        return EmailUser.objects.get(pk=user_id) 
      except EmailUser.DoesNotExist: 
        return None 

答えて

1

迅速な答えは - いいえカスタムバックエンドを必要といけません。ユーザーモデルを置き換える場合は、認証時に何かを変更したい場合(他の理由もあります)、カスタムモデルをバックエンドにする場合は、you need to setAUTH_USER_MODEL = 'yourapp.YourUserModel'

カスタムバックエンドが必要です。例えば...

+0

私はAUTH_USER_MODELが設定されていますが、ユーザがログオンするたびに、ユーザがananymousであることを示しています。 –

+0

@AlbertStepanyanあなたのデータはおそらくdjangoのユーザモデルからのものでしょうか? – doniyor

+0

いいえ簡単なログインフォームから来ていますが、私はカスタムバックエンドを試しましたが、それでも問題は解決しませんでした。 –

関連する問題