Форум сайта python.su
Дефолтная форма даты мне не подходит, и нужно сделать свою (пример).
Долго бегал по гуглу, но ничего путного на эту тему не нашёл, изредка попадается такой же страждущий народ, но никакого чёткого решения нет.
Были мысли лезть в код db\models\fields\__init__.py и пробовать сделать Field для админки по образу и подобию готовых полей оттуда, но знаний пока не хватает.
Есть какой-нибудь способ решить эту проблему безболезненно?
Отредактировано (Май 18, 2007 01:38:01)
Офлайн
Написать свой field и работать с ним.
Офлайн
Пытаюсь методом разобраться с тем как работают встроенные field'ы, пока безуспешно.
Офлайн
Новое поле я создать более-менее осилил (вот код). В модели пока описан просто: text = GDDDateField('Тест')
Вот только теперь проблема в том, как получить через POST значения полей, правильно обработать и записать в базу.
Из мануала я вычитал, что нужно создать manipulator, я правильно понял? Для встроенных field'ов это делается средствами django.db.models.field, если я не ошибаюсь. Вот только как это распространить на мой кастомный филд? Я как вообще они работают. Из имеющегося в официальной документации примера я не понял как их применить.
Или может я вообще не в ту сторону копаю?
Офлайн
Uznickкопай в сторону исходников django и делать по аналогии
Или может я вообще не в ту сторону копаю?
Офлайн
Я исходники и изучаю и по аналогии создал просто field.
Вот только как оттуда выдрать сохранение поля я пока не понял
Офлайн
UznickРеализовав метод clean()
Я исходники и изучаю и по аналогии создал просто field.
Вот только как оттуда выдрать сохранение поля я пока не понял
Офлайн
Так метод clean() для newforms нужен.
А в стабильном релизе в админке oldforms используется.
Или я не прав?
Офлайн
Насколько я понимаю, с БД работает как раз манипулятор. Задача field – сконвертировать данные из html в python. Этим в классах, производных от FormField занимается статический метод html2python, принимающий единственным аргументом сырые данные поля формы и возвращающий их python-представление.
IMO, не логично сейчас писать что-либо на oldforms, потому как даже админка активно переписывается на новых формах, да и весь Django стремительно развивается. Сто пудов, работу придётся делать дважды.
Офлайн
А нет никаких проблем с использованием newforms-полей в админке, которая на oldforms работает в 0.96?
Я сейчас попробовал накатить newforms-admin trunc из svn, но там какие-то баги полезли на тему Page not found at /admin/. На него рано переходить полностью, видимо.
Офлайн