Search code examples
pythondjangopostgresql

Django/Python: Update the relation to point at settings.AUTH_USER_MODEL


I'm completely new to Python and Django, but I need to install testbedserver-software (for which I follow this tutorial) on my server. Now I'm running into trouble when running following command:

python manage.py syncdb

The following error is shown:

CommandError: One or more models did not validate:
menu.bookmark: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
dashboard.dashboardpreferences: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.

This is my manage.py:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "controller.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

This is my settings.py:

from controller.settings_example import *

# Probably you want to override at least the database configuration:
DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'controller',
    'USER': 'confine',
    'PASSWORD': 'confine',
    'HOST': 'localhost',
    'PORT': '',
}
}

I already found this http://grokbase.com/p/gg/django-users/12ar0b12ca/ver-1-5-specifying-custom-user-model-extends-abstractuser-doesnt-work. But I don't even know where to apply the solution. (I don't even know this problem is PostgreSQL, Python or Django based...)

Can someone help me with this?

Thanks in advance, atobi


Solution

  • in settings_example.py you have AUTH_USER_MODEL = 'users.User'. However you are using an app - menu.bookmark - that has a relation to django.contrib.auth.User - you can't have both. Setting AUTH_USER_MODEL means that you are replacing the built-in Django user model with your own. See http://procrastinatingdev.com/django/using-configurable-user-models-in-django-1-5/ for details.