Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2007 00:44:19

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Дефолтная форма даты мне не подходит, и нужно сделать свою (пример).

Долго бегал по гуглу, но ничего путного на эту тему не нашёл, изредка попадается такой же страждущий народ, но никакого чёткого решения нет.

Были мысли лезть в код db\models\fields\__init__.py и пробовать сделать Field для админки по образу и подобию готовых полей оттуда, но знаний пока не хватает.

Есть какой-нибудь способ решить эту проблему безболезненно?



Отредактировано (Май 18, 2007 01:38:01)

Офлайн

#2 Май 18, 2007 08:47:43

Igorek
От:
Зарегистрирован: 2006-12-08
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Написать свой field и работать с ним.



Офлайн

#3 Май 18, 2007 20:47:45

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Пытаюсь методом разобраться с тем как работают встроенные field'ы, пока безуспешно.



Офлайн

#4 Май 21, 2007 14:36:11

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Новое поле я создать более-менее осилил (вот код). В модели пока описан просто: text = GDDDateField('Тест')
Вот только теперь проблема в том, как получить через POST значения полей, правильно обработать и записать в базу.

Из мануала я вычитал, что нужно создать manipulator, я правильно понял? Для встроенных field'ов это делается средствами django.db.models.field, если я не ошибаюсь. Вот только как это распространить на мой кастомный филд? Я как вообще они работают. Из имеющегося в официальной документации примера я не понял как их применить.

Или может я вообще не в ту сторону копаю?



Офлайн

#5 Май 21, 2007 16:00:52

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Uznick
Или может я вообще не в ту сторону копаю?
копай в сторону исходников django и делать по аналогии



Офлайн

#6 Май 21, 2007 16:09:15

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Я исходники и изучаю и по аналогии создал просто field.
Вот только как оттуда выдрать сохранение поля я пока не понял



Офлайн

#7 Май 22, 2007 22:50:25

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Uznick
Я исходники и изучаю и по аналогии создал просто field.
Вот только как оттуда выдрать сохранение поля я пока не понял
Реализовав метод clean()



Офлайн

#8 Май 23, 2007 01:13:30

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Так метод clean() для newforms нужен.

А в стабильном релизе в админке oldforms используется.

Или я не прав?



Офлайн

#9 Май 23, 2007 09:37:44

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

Насколько я понимаю, с БД работает как раз манипулятор. Задача field – сконвертировать данные из html в python. Этим в классах, производных от FormField занимается статический метод html2python, принимающий единственным аргументом сырые данные поля формы и возвращающий их python-представление.

IMO, не логично сейчас писать что-либо на oldforms, потому как даже админка активно переписывается на новых формах, да и весь Django стремительно развивается. Сто пудов, работу придётся делать дважды.



Офлайн

#10 Май 23, 2007 13:28:37

Uznick
От:
Зарегистрирован: 2007-05-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Нестандартная форма для админки

А нет никаких проблем с использованием newforms-полей в админке, которая на oldforms работает в 0.96?

Я сейчас попробовал накатить newforms-admin trunc из svn, но там какие-то баги полезли на тему Page not found at /admin/. На него рано переходить полностью, видимо.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version