Текстовое поле ввода HTML в Django admin.py filter

Я хотел бы фильтровать данные в Django (admin.py) с текстом, записанным в текстовом поле ввода HTML. Мне нужно отфильтровать компании по городу, в котором они находятся, и список всех городов слишком длинный. Я хочу заменить список всех городов в фильтре одним вводом текста. Я нашел нечто подобное здесь http://djangosnippets.org/snippets/2429/ но есть две проблемы:

  1. автор не опубликовал models.py, поэтому сложно изменить код для моих нужд (+ без комментариев )
  2. используется класс UserFieldFilterSpec (RelatedFilterSpec): но мне нужно использовать AllValuesFilterSpec вместо RelatedFilterSpec (подробнее в файле django / contrib / admin / filterspecs.py), потому что список городов принадлежит к тому же классу, что и компания (там определяется классом городов, и они должны ссылаться на компанию по внешнему ключу (отношение ManyToMany), но по некоторым причинам это должно быть сделано таким образом)

важная часть моделей.py выглядит примерно так

class Company(models.Model):
    title = models.CharField(max_length=150,blank=False)
    city = models.CharField(max_length=50,blank=True)

и что-то из admin.py

class CatalogAdmin(admin.ModelAdmin):
    form = CatalogForm
    list_display = ('title','city') 
    list_filter = ['city',]

Итак, мне снова нужно: 1. вместо списка городов отображать один ввод текста в фильтре Django 2. После ввода названия города в этот текстовый ввод отфильтруйте данные по городу (запрос на фильтрацию можно отправить с помощью какой-либо кнопки отправки или через javascript)

Спасибо за все сообщения.

13
задан Jazzuell 3 July 2011 в 13:37
поделиться