Нечетное поведение с встроенным профилем пользователя в Django admin в Google App Engine

Вопрос:

Мы используем подкласс UserAdmin для добавления нашего профиля пользователя в приложение Django 1.4 в Google App Engine 1.8.1. До недавнего времени это работало нормально, но профиль пользователя не будет отображаться в нашем интерфейсе администратора приложения, если он будет использоваться в App Engine (т.е. appspot.com). Как ни странно, однако, он по-прежнему отлично работает на моей машине разработки в SDK и работает под управлением AppEngine Launcher.

У кого-нибудь еще есть опыт работы с этой проблемой и, возможно, решение?

Здесь код, который мы используем (в admin.py для нашего приложения):

admin.site.unregister(User)


class UserProfileInline(admin.StackedInline):
model = UserProfile


class UserModelAdmin(UserAdmin):
inlines = [UserProfileInline, ]
list_display = ('username', )
search_fields = ['username']


admin.site.register(User, UserModelAdmin)

Он почти идентичен коду в связанном SO-вопросе; странная вещь, это работает в моей среде dev, но НЕ на сервере. Есть идеи?

Лучший ответ:

Оказывается, проблема была связана с полем ForeignKey (school), в котором было доступно около 100 000 вариантов. Запрос на создание всех этих имен для создания раскрывающегося списка был отключен в App Engine. Решение заключалось в том, чтобы сделать эту конкретную связанную область только для чтения:

class UserProfileInline(admin.StackedInline):
    model = UserProfile
    readonly_fields = ('school', 'file_data')

Это не повлияло на наше приложение. Администратор целенаправленно ограничен, потому что пользователи должны сами вносить изменения, используя формы на лицевой стороне; в школьном поле используется вызов AJAX, чтобы запросить базу данных, чтобы выполнить автозаполнение, возвращая совпадения в качестве пользовательских типов в текстовом поле.

Оцените статью
TechArks.Ru
Добавить комментарий