Я - текущий пользователь web2py, но обнаруживаю, что время от времени возвращаюсь в Django (с чего я начинал). В частности, при работе над проектами, где я хочу использовать некоторые конкретные приложения / плагины / расширения django, которые еще не существуют в web2py.
Одна вещь, без которой я не могу жить в web2py, для которой я ищу решение в Django, это способ создания html-форм из таблицы db и возможность затем настраивать их внешний вид и макет в представлении. без javascript.
Ключевые вещи, которые я ищу:
- Создание HTML-формы из таблицы БД
- Назначение пользовательских классов / идентификаторов CSS каждому полю в сгенерированной HTML-форме (js отключено)
- Поместите каждое поле / элемент формы в предварительно созданное HTML-представление с помощью вызова метода в представлении
т.е.
У меня есть таблица A. В web2py я могу сделать (в контроллере):
def display_form():
form = SQLFORM(db.table_A)
#Can I do the following in Django? Assign custom CSS to each form field?
form.element(_name='email')['_class'] = = "custom_css_classes, list"
if form.accepts(request.vars, session):
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return dict(form=form)
Затем в представлении я могу сделать:
form.custom.start
form.custom.widget.name
form.custom.widget.email
form.custom.widget.form_field_name
...
<div class="span-5 last"><input type="submit" class="register_btn" value="Sign Up"></input></div>
form.custom.end
Вышеприведенное берет таблицу БД, создает форму HTML, а затем позволяет мне прикрепить каждое отдельное поле формы в любое место в готовом HTML, который я хочу (используя эти «пользовательские» вызовы методов для переданной «формы»). объект. Включая пользовательские классы CSS, которые я назначил каждому отдельному полю сгенерированной HTML-формы.
Подробнее о вышеуказанном коде см. В документации:
http://web2py.com/book/default/chapter/06?search=define_table
http://web2py.com/book/default/chapter/07?search=sqlform#SQLFORM
http://web2py.com/book/default/chapter/05?search=#Server-side-DOM-and-Parsing
http://web2py.com/book/default/chapter/07?search=form.custom
Как мне сделать вышеупомянутое в Django, не пачкая мой javascript хакерами макетов. Предположим, что javascript отключен в браузерах, где мне нужно запустить приложение. Кроме того, я хотел бы использовать админку Django. Также приветствуются решения Pylons!
Ссылки на статьи / учебные пособия / инструкции для этого будут с благодарностью.
Также, пожалуйста, сделайте эквивалентный результат из приведенного выше кода, используя метод, который вы упомянули в своем ответе ...