У меня есть следующая модель, которая формирует отношения «многие ко многим» между людьми и публикациями «Eprint». На странице профиля каждого человека будут отображаться eprints, на которые есть ссылки в этой таблице, но только в том случае, если show = True и в числовом порядке поля 'order':
class UsersEprint(models.Model):
person = models.ForeignKey(Person)
eprint = models.ForeignKey(emodels.Eprint) # this has a .title field
show = models.BooleanField(default=True)
order = models.IntegerField(default=0)
Теперь всем этим можно управлять от администратора, но я хочу, чтобы на странице профиля пользователя на сайте появилась удобная форма.
В идеале мне нужна таблица со строкой для каждого из оттисков человека с указанием заголовка eprint (который нельзя редактировать), флажок для «show» и числовое поле для «order». Галочка 'delete' также будет полезна.
Подход по умолчанию с наборами моделей формирует выпадающий список для eprint, в котором перечислены все eprint - потому что форма не знает, что я не хочу редактировать это. Я пробовал различные подходы с переопределением полей и виджетов, но все это выглядит немного глупо, и в любом случае, мне все равно придется в конечном итоге отображать форму в шаблоне построчно.
Следующая сложность заключается в том, что вместо нумерации пользовательских типов для изменения порядка строк таблицы я мог бы использовать систему javascript - либо перетаскивать строки или перемещать стрелки вверх / вниз. Когда пользователь отправляет форму, новый заказ получен.
У меня вопрос: в какой момент я выйду из сферы обработки форм django? Должен ли я просто отбросить импорт django.forms и управлять всем этим сам? Или есть еще полезные биты даже для самых неуклюжих форм?