Панель администратора Django не работает после изменения модели пользователя по умолчанию - PullRequest
2 голосов
/ 08 января 2011

Я пытался расширить профиль пользователя. Я основал несколько решений, но наиболее рекомендуемым было создание нового пользовательского класса, содержащего внешний ключ к оригинальному классу django.contrib.auth.models.User. Я сделал это с этим , поэтому у меня есть models.py:

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    website_url = models.URLField(verify_exists=False)

а по моему admin.py

from django.contrib import admin
from someapp.models import *
from django.contrib.auth.admin import UserAdmin

# Define an inline admin descriptor for UserProfile model
class UserProfileInline(admin.TabularInline):
    model = UserProfile
    fk_name = 'user'
    max_num = 1

# Define a new UserAdmin class
class MyUserAdmin(UserAdmin):
    inlines = [UserProfileInline, ]

# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

И теперь, когда я пытаюсь создать / отредактировать пользователя в административной панели, у меня появляется ошибка: "Unknown column 'content_userprofile.id' in 'field list'" где content - это мое имя приложения.

Я пытался добавить строку AUTH_PROFILE_MODULE = 'content.UserProfile' к моему settings.py, но безрезультатно.

Как заставить администратора панели знать, как правильно отображать поля в пользовательской форме?

1 Ответ

2 голосов
/ 08 января 2011

После некоторых усилий я нашел рабочее решение:

  1. требуется AUTH_PROFILE_MODULE = 'content.UserProfile'
  2. пожалуйста, удалите вашу базу данных (auth_user, таблиц yourapp_userprofile должно быть достаточно)
  3. наконец python manage.py syncdb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...