Этот человек сейчас меня заводит. Раньше этого не было (даже скриншоты, которые я должен был сделать для руководства пользователя, так как это требовало заказчика).
Я впервые заметил его на сервере production, а затем я проверил и также произошел в dev-сервере, который поставляется с Django. Модель появляется на главной странице администратора django, я могу щелкнуть по ней и отобразить список точек продаж. Проблема возникает, когда я хочу отредактировать существующий экземпляр или создать новый.
Я просто нажимаю на ссылку (или кладу ее на панель), и она просто зависает.
class PointOfSaleAdmin(admin.ModelAdmin):
list_display = ('id','business', 'user', 'zipcode', 'address','date_registered')
list_filter = ('business',)
filter_horizontal = ('services',)
admin.site.register(models.PointOfSale, PointOfSaleAdmin)
Это регистрация модели. Все модели зарегистрированы в приложении администратора, и пользователь, чтобы проверить это, является суперпользователем. Модель:
class PointOfSale(models.Model):
user = models.ForeignKey(User)
zipcode = models.ForeignKey(Zipcode)
business = models.ForeignKey(Business)
services = models.ManyToManyField(Service,
verbose_name='available services')
date_registered = models.DateField(auto_now_add=True)
address = models.CharField(max_length=300)
Плюс несколько методов, которые не должны иметь большого значения. Плюс, в прошлый раз до этого, что я тестировал admin, был сразу после того, как я создал все эти методы, поэтому в этом не должно быть никакого значения.
Администратору очень редко приходится обращаться к этой странице. Обычно это просто перечисление PoS, но это все еще беспокоит меня. Любая идея, почему это может быть висит? Все остальные модели работают отлично.
Это происходит как на Django 1.2.5, так и на 1.3
EDIT:
Я изменил пределы тайм-аута. Он работает, но почему-то это занимает несколько минут, чтобы это произошло на самом деле. Итак, в фоновом режиме есть что-то, что занимает много времени. Я не понимаю, как это происходит только для этой модели, и это происходит в разных средах (и с небольшими наборами данных).
Мне почти хочется похлопать себя. Моя вина за то, что ты так долго не спишь.
Проблема в том, что список zipcode довольно большой (десятки тысяч), а поле внешнего ключа загружается как тэг select html, что означает, что он загружает каждую запись. Это проблема с тем, сколько данных просто.
Теперь мне интересно, как управлять тем, как внешний ключ отображается в администраторе. Кто-нибудь может помочь с этим?