Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

database error, no such table:auth_user in django

Tags:

django

i want to use the userena for my django website.First time working with the userena.

i have created app namely 'accounts' for user sign in and sing out,where my models.py is

from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from userena.models import UserenaBaseProfile

class MyProfile(UserenaBaseProfile):
user = models.OneToOneField(User,
                            unique=True,
                            verbose_name=_('user'),
                            related_name='my_profile')
favourite_snack = models.CharField(_('favourite snack'),
                                   max_length=5)

and my settings.py is

# Django settings for photostock project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', '[email protected]'),
  )

MANAGERS = ADMINS
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'f1d3r!@#'

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': 'photo',                      # Or path to database file if using sqlite3.
    # The following settings are not used with sqlite3:
    'USER': '',
    'PASSWORD': '',
    'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
    'PORT': '',                      # Set to empty string for default.
}
}
  AUTHENTICATION_BACKENDS = (
                   'userena.backends.UserenaAuthenticationBackend',
                   'guardian.backends.ObjectPermissionBackend',
                   'django.contrib.auth.backends.ModelBackend',
              )
  #AUTH_USER_MODEL = "login.PropaUser"

  # Hosts/domain names that are valid for this site; required if DEBUG is False
  # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
  ALLOWED_HOSTS = []

  # Local time zone for this installation. Choices can be found here:
  # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
  # although not all choices may be available on all operating systems.
  # In a Windows environment this must be set to your system time zone.
  TIME_ZONE = 'America/Chicago'

  # Language code for this installation. All choices can be found here:
  # http://www.i18nguy.com/unicode/language-identifiers.html
  LANGUAGE_CODE = 'en-us'

  SITE_ID = 1

  # If you set this to False, Django will make some optimizations so as not
  # to load the internationalization machinery.
  USE_I18N = True

  # If you set this to False, Django will not format dates, numbers and
  # calendars according to the current locale.
  USE_L10N = True

  # If you set this to False, Django will not use timezone-aware datetimes.
  USE_TZ = True

  # Absolute filesystem path to the directory that will hold user-uploaded files.
  # Example: "/var/www/example.com/media/"
  MEDIA_ROOT = ''

 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
 # trailing slash.
 # Examples: "http://example.com/media/", "http://media.example.com/"
 MEDIA_URL = ''

 # Absolute path to the directory static files should be collected to.
 # Don't put anything in this directory yourself; store your static files
 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
 # Example: "/var/www/example.com/static/"
 STATIC_ROOT = ''

 # URL prefix for static files.
 # Example: "http://example.com/static/", "http://static.example.com/"
 STATIC_URL = '/static/'

 # Additional locations of static files
 STATICFILES_DIRS = (
 # Put strings here, like "/home/html/static" or "C:/www/django/static".
 # Always use forward slashes, even on Windows.
 # Don't forget to use absolute paths, not relative paths.
 )

 # List of finder classes that know how to find static files in
 # various locations.
 STATICFILES_FINDERS = (
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
 #           'django.contrib.staticfiles.finders.DefaultStorageFinder',
 )

 # Make this unique, and don't share it with anybody.
 SECRET_KEY = 'tr!)ra#+%miw(qo^ot)v8@i+$2+4o9io=7p6w3hd=i$3m2!tkr'

 # List of callables that know how to import templates from various sources.
 TEMPLATE_LOADERS = (
      'django.template.loaders.filesystem.Loader',
      'django.template.loaders.app_directories.Loader',
 #         'django.template.loaders.eggs.Loader',
 )

 MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        # Uncomment the next line for simple clickjacking protection:
        # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 )

 ROOT_URLCONF = 'photostock.urls'

 # Python dotted path to the WSGI application used by Django's runserver.
 WSGI_APPLICATION = 'photostock.wsgi.application'

 TEMPLATE_DIRS = (
         # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
         # Always use forward slashes, even on Windows.
         # Don't forget to use absolute paths, not relative paths.
 )

 INSTALLED_APPS = (
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.sites',
       'django.contrib.messages',
       'django.contrib.staticfiles',
       # Uncomment the next line to enable the admin:
       # 'django.contrib.admin',
       # Uncomment the next line to enable admin documentation:
       # 'django.contrib.admindocs',
       'userena',
       'guardian',
       'easy_thumbnails',
       'accounts',
  )
  ANONYMOUS_USER_ID = -1
  AUTH_PROFILE_MODULE = 'accounts.MyProfile'  

 LOGIN_REDIRECT_URL = '/accounts/%(username)s/'  
 LOGIN_URL = '/accounts/signin/'  
 LOGOUT_URL = '/accounts/signout/'  

 SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'

 # A sample logging configuration. The only tangible logging
 # performed by this configuration is to send an email to
 # the site admins on every HTTP 500 error when DEBUG=False.
 # See http://docs.djangoproject.com/en/dev/topics/logging for
 # more details on how to customize your logging configuration.
 LOGGING = {
     'version': 1,
     'disable_existing_loggers': False,
     'filters': {
         'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
            }
     },
 'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    }
 },
 'loggers': {
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    },
 }
}

i have already shown the sing in page and sign up page in my website using userena.Validation is working well but while i try to sign up , filling all the required field and press the submit button,it shows an error,that is

 DatabaseError at /accounts/signin/

 no such table: auth_user

 Request Method:    POST
 Request URL:   http://localhost:8000/accounts/signin/
 Django Version:    1.5.5
 Exception Type:    DatabaseError
 Exception Value:   no such table: auth_user

in mention ,i haven't make any changes in my projects models.py file.though it is a database error,has it any connection with my projects models.py?? Is there anything to do more?

i have to mention that i am really an amature who working with userena.so if you have any kind of solution or a hint to solve this problem,please help me.

like image 913
zogo Avatar asked Dec 18 '13 09:12

zogo


2 Answers

As @ Aswin Murugesh points out, you should check your database and make sure tables are created. If you have run ./manage.py syncdb and are still getting this error, I would recommend installing an SQLite browser like SQLiteman (http://sqliteman.yarpen.cz/ sudo apt-get install sqliteman) and opening your SQLite file and checking the database. This will tell you if the database is working.

Often when using SQLite, you can make a backup of your database and then start from scratch and get all fresh tables. Developing ocally, running a single-file database like SQLite, it's less difficult to destroy the database and start over if you are in a bind.

You can always create a new virtualenv and start a fresh Django project (if you are really stuck) and get Userena working that way too.

like image 169
nicorellius Avatar answered Dec 29 '22 05:12

nicorellius


Add in settings.py:

AUTH_PROFILE_MODULE = 'accounts.MyProfile'
like image 38
M.Void Avatar answered Dec 29 '22 04:12

M.Void