django autocomplete-light шаблон плюс знак

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

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

EDIT для ясности - я использую django grappelli. введите здесь описание изображения

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

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

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;',})) 

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


person Charlesliam    schedule 09.12.2013    source источник
comment
Какая версия autocomplete-light? Вы пробовали v2?   -  person jpic    schedule 10.12.2013
comment
сейчас я использую django-autocomplete-light==1.2.3   -  person Charlesliam    schedule 11.12.2013


Ответы (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.

person jpic    schedule 10.12.2013
comment
Я буду тщательно изучать, как переопределить ваш widget.html. На данный момент я использую настройку формы, определяя поля, чтобы решить мою проблему. Он удалил знак «плюс» даже после выбора, но у меня возникла новая проблема с ограничением пользователя на добавление новой записи. Проблема обмена новичков. - person Charlesliam; 13.12.2013
comment
Я улучшу поддержку граппелли в 2.1.0. - person jpic; 13.12.2013