Шаблон автозаполнения Django со знаком плюс

Новичок здесь. Я использую django-autocomplete-light для моего ключа внешнего поля в django admin. Работает отлично. Но как только я выбрал предмет, знак плюс бросается под предметом.

Есть ли способ, чтобы знак плюс оставался на одном уровне с выбранным элементом, чтобы сэкономить место?

РЕДАКТИРОВАТЬ для ясности - я использую Django Grappelli.

Спасибо django-autocomplete-light автору, jpic за объяснение того, как переопределить шаблон и css. Хорошо, что я могу вставить изображение сейчас.

На изображении выше у меня есть два автозаполнения, Public Telecom Entity (PTE) и Антенна. Индивидуальная форма использует

class Meta: widgets = autocomplete_light.get_widgets_dict(Equipment) 

PTE определяется в форме как

carrier = forms.ModelChoiceField(Carrier.objects.all(), 
                 label="Public Telecom Entity",    
                 widget=autocomplete_light.ChoiceWidget('CarrierAutocomplete', 
                 attrs='style':'width:520px;',})) 

Но я не определил антенну. Я предполагаю, что это поле будет использовать виджет Meta.

1 ответ

Решение

Есть ли способ, чтобы знак плюс оставался на одном уровне с выбранным элементом, чтобы сэкономить место?

Знак плюс мне кажется нормальным:

Хотя нет кнопки, чтобы нажимать на знак плюс, чтобы он оставался на одном уровне с выбранным элементом, чтобы сэкономить место (что мне даже не понятно), вы можете изменить дизайн виджета по своему вкусу. Вот что я подробно опишу в этом ответе.

Переопределение шаблона виджета

Вы можете переопределить шаблон autocomplete_light/widget.html,

Для этого скопируйте /path/to/autocomplete_light/templates/autocomplete_light/widget.html в autocomplete_light подкаталог одного из ваших TEMPLATE_DIRS, Например:

mkdir ~/your_project/templates/autocomplete_light
cp ~/env/lib/python/site-packages/autocomplete_light/templates/autocomplete_light/widget.html ~/your_project/templates/autocomplete_light

Перезагрузите сервер, и вы можете безопасно редактировать ~/your_project/templates/autocomplete_light/widget.html,

Переопределение таблицы стилей

То же самое для таблицы стилей. Все, что вам нужно сделать, чтобы взломать его, это скопировать его из autocomplete_light/static/autocomplete_light/style.css в один из ваших STATICFILES_DIRS, Если вы все еще не уверены в том, как работают статические файлы django, вы можете прочитать " Выживающие статические файлы". Например:

mkdir ~/your_project/static/autocomplete_light
cp ~/env/lib/python/site-packages/autocomplete_light/static/autocomplete_light/style.css ~/your_project/static/autocomplete_light

Перезапустите сервер разработки, и вы можете безопасно изменить ~/your_project/static/autocomplete_light/style.css по вашему вкусу.

Если вы думаете, у вас есть действительно лучший способ

Если вы считаете, что у вас есть более подходящая идея для виджета по умолчанию, поставляемого с помощью autocomplete-light v1, не стесняйтесь открывать запрос на загрузку на github.

Другие вопросы по тегам