Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 16

Как сделать в Админке выбор автора, если их много

22.08.2018, 13:00. Показов 2557. Ответов 9

Студворк — интернет-сервис помощи студентам
Здравствуйте высокоуважаемое сообщество программистов!

Суть в чём. Попросили создать простое приложение "общей тетради" для школы. На самом деле это своего рода общий блог. Детям дают задания написания статьи, а уже потом несколько энтузиастов (выберут там человека 3-5) вносят эти статьи в проект.

И всё-бы хорошо, но авторов оказывается огромное количество. Как мне сказала завуч, скорее всего будет от 250 до 700 авторов. Т.е. потенциально вся школа.

У каждого автора должна быть своя уникальная ID учётка, чтобы можно было искать по автору.

Но т.к. будут вносить в блог отдельные личности (те 3-5 человек, которым дадут эти ограниченные привилегии), то на стадии добавления статьи возникает огромная проблема с выбором автора. Вот если их к примеру 10-30, то можно поискать, а если их 250 или 550, то найти и выбрать из раскрывающегося списка, становиться проблематично и неудобно. Сразу возникнут ошибки, путаница и недовольства разного ранга.

Возникает вопрос. Как же в админке сделать поле автора таким образом, чтобы можно было в нём производить своего рода поиск. Я вижу использования ajax и формирования подсказок (как на поиске яндекс-гугл и т.п.), кто-нибудь решал подобную задачу?

Делал ли кто-то что-то подобное? Да и вообще есть у джанго возможность в его api какая-то хитрая настройка, чтобы можно было что-то написав сделать таким образом, чтобы вместо раскрывающегося списка, было просто поле с поиском? (я почему спрашиваю, ведь django может ведь на лету slug делать, может и такое что-то подобное есть?)

С уважением!

p.s. ах да, вот как оно уже выглядит, а я добавил только пару десятков авторов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2018, 13:00
Ответы с готовыми решениями:

Как лучше сделать базу данных, если много таблиц?
Всем привет.Как лучше сделать базу данных автосалона,если много таблиц в базе данных. Отдельно создавать формы на таблицу? Или же как...

Как сделать,чтобы ссылки не индексировались,если лень писать nofollow , ссылок много
Такой вопрос:я вставляю как с помощью ворда таблицы с msdn на сайт,и мне нужно,чтобы вся таблица неиднексировалась,главное,чтобы ссылки не...

Как сделать поиск по сайту если на сайте имеется много страницы и не делать поиск по странице а найти по в
Как сделать поиск по сайту если на сайте имеется много страницы и не делать поиск по странице а найти по в

9
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2018, 06:11
Как минимум можно сделать дефолтную сортировку. Добавь в модель авторов в класс Meta такую строчку для сортировки по алфавиту:
Python
1
ordering = ('fio',)
2
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
24.08.2018, 17:54
Цитата Сообщение от МаксимСергеевич Посмотреть сообщение
чтобы вместо раскрывающегося списка, было просто поле с поиском?
Можно. ModelAdmin.search_fields
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.08.2018, 05:39
Garry Galler, мне кажется, это не то. Пытался прикрутить к django.contrib.auth.admin.UserAdmin — не получилось.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.08.2018, 12:22
Рыжий Лис,
Это стандартное поле поиска для админки, которое осуществляет поиск в БД по указанным полям.
ModelAdmin.search_fields
search_fields позволяет добавить поиск на страницу списка объектов. Этот атрибут должен содержать список полей, которые будут использоваться при поиске.

Эти поля должны быть текстовыми, таким как CharField или TextField. Вы можете указать поля из связанных объектов используя __:
ТС хотел либо это
Цитата Сообщение от МаксимСергеевич Посмотреть сообщение
просто поле с поиском?
либо коня в вакууме.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.08.2018, 13:48
ТС хочет удобное заполнение админки, чтобы фио не искать мучительно долго.

Пример для Many-to-Many:

0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.08.2018, 14:57
У него админка уже заполнена (заполняется по мере поступления данных). Он просто не хочет огромного списка в dropdown.
Поле поиска разве не для этого?
0
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 16
29.08.2018, 16:26  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Добавь в модель авторов в класс Meta такую строчку для сортировки по алфавиту:
Python
1
ordering = ('fio',)
Это в какой-то степени помогло. Ну по крайней мере визуально. Правда у меня это выглядит, как:
Python
1
ordering = ('full_name',)
Но это не решает проблему большого количества. В идеале нужен Live-search для поля "журналисты".

Цитата Сообщение от Garry Galler Посмотреть сообщение
Можно. ModelAdmin.search_fields
А вот тут у меня никакого фильтра не создаётся. У меня по факту просто появляется поле поиска на странице Журналистов.

Но на странице создания статьи ничего подобного нет, всё как и прежде, только участники (по совету Рыжего Лиса) теперь отсортированы по алфавиту.

Мне же нужно, чтобы вместо раскрывающегося списка (в перспективе который будет под пол тысячи) было поле поиска, как я уже сказал желательно типа LiveSearch, но а для начала, хоть какое-то.
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
29.08.2018, 16:33
Ну наверное тогда нужно перекрывать шаблон создания и редактирования модели, где будет JS который по мере набора текста и будет показывать результат неточного поиска по журналистам, а журналистов ты можешь передать в шаблон через форму. Ну я бы так сделал.
0
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 16
29.08.2018, 16:59  [ТС]
Цитата Сообщение от Wi0M Посмотреть сообщение
Ну наверное тогда нужно перекрывать шаблон создания и редактирования модели, где будет JS который по мере набора текста и будет показывать результат неточного поиска по журналистам, а журналистов ты можешь передать в шаблон через форму. Ну я бы так сделал.
Ну вот я что-то подобное и ищу, только я почему-то решил, что оно такое уже где-то есть, что называется из коробки. Но нет. Вот нашёл вариант. Буду пробовать колдовать, хотя вот думаю, может быть стоит действительно сделать несколько разных кабинетов для разных групп пользователей, но это же столько работы лишней...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2018, 16:59
Помогаю со студенческими работами здесь

Как сделать правильный выбор языка программирования, если интересны разные сферы?
Здравствуйте. В последнее время, выбор языка программирования для меня стало большой проблемой. Это напоминает мне выбор религии. Все...

Как сделать выбор персонажа в консольном приложении? Как сделать чтобы программа заново предлагала выбор
Кто знает как разобраться с программой? Дело такое, программа предлагает выбрать одного из трёх персонажей клавишами 1, 2 или 3. Но,...

Как сделать ограничение функций в админке
Здравствуйте Не первый раз обращаюсь к вам, и не первый раз помогаете :) Надеюсь и сейчас поможете В общем, есть код авторизации: ...

как упорядочить список по фамилии автора, если дана информация о книге?
Пусть дану упорядоченный список информации о книге (ФИО автора, название книги, год издания). Список упорядочен по фамилии автора. Добавить...

Как сделать, чтобы в админке отображались создаваемые страницы?
Вопрос не по самому Django, а по Django CMS, может сталкивался просто кто. При создании страниц в админке, они сохраняются в базе данных,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru