Шаблон автозаполнения 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.