0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 16

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

22.08.2018, 13:00. Показов 2569. Ответов 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 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru