Учитывая эти две модели:ForeignKeyAutocompleteAdmin
class Product(Model):
upc = CharField(max_length=96, unique=True)
...
class Meta:
app_label = 'scrapers'
class Order(Model):
...
product = ForeignKey('scrapers.Product', related_name='orders', on_delete=models.CASCADE)
objects = OrderManager()
class Meta:
app_label = 'scrapers'
И это admin.py:
class OrderAdmin(ForeignKeyAutocompleteAdmin):
related_search_fields = {
'product': ('upc', 'retailer_offerings__name')
}
fields = ('product', 'client', 'completed', 'expires', 'amount', 'filled')
admin.site.register(Order, OrderAdmin)
Сделав collectstatic и объявил django_extensions и мое приложение в INSTALLED_APPS. Почему я получаю это:
[04/Dec/2016 05:54:28] "GET /admin/scrapers/product/foreignkey_autocomplete/?search_fields=upc&app_label=scrapers&model_name=product&q=045496 HTTP/1.1" 302 0
Not Found: /admin/scrapers/product/foreignkey_autocomplete/change/
[04/Dec/2016 05:54:28] "GET /admin/scrapers/product/foreignkey_autocomplete/change/ HTTP/1.1" 404 1875
На входе в поле ввода (поле слева не будет вход pk справа)?
Таблица продуктов содержит миллионы строк, а конфигурация администратора по умолчанию не справляется с этим, поэтому я попробовал решение для пакетов расширения. Виджет запрашивает product/foreignkey_autocomplete
, но быстрый grep через manage.py show_urls показывает, что только пакет заказов был зарегистрирован в пакете foreignkeyautocomplete. Я ничего не вижу в документации по настройке URL-адресов (я предполагаю, что это делается при регистрации с администратором). Как я могу заставить это работать?
Частичное решение:
после изучения URLs и понимая, что пытается сверху отправить поисковые запросы/продукта/foreignkey_autocomplete/... Я попытался создать пустую администратора для этой модели, а также. Он работал, но поведение по-прежнему нечетное. Кажется, что он прекратил поиск после ввода 4-5 символов и не беспокоит обновление.
Спасибо, @Verbal_Kint. Это безумие. Почему это не в документах? – xnx