Use placeholders in django forms

Hi there! Using django with bootstrap and want to use placeholders instead labels? Seems you have something to ask Google :)

If you got stuck with this particular topic, here is my solution you can use as a starting point for your own.

The idea is simple: turn labels into placeholders. We need to add placeholder attribute to inputs and remove labels from output.

Solution using intermediate class

class PlaceholderForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(PlaceholderForm, self).__init__(*args, **kwargs)
        for field_name in self.fields:
            field = self.fields.get(field_name)
            if field:
                if type(field.widget) in (forms.TextInput, ):
                    field.widget.attrs.update(
                        {'placeholder': field.label, 'class': 'span10'}
                    )
                if type(field.widget) in (forms.Select, ):
                    field.widget.attrs.update({'class': 'span10'})
                    field.empty_label = field.label

    def as_p(self):
        return self._html_output(
            normal_row='<p%(html_class_attr)s>%(field)s%(help_text)s</p>',
            error_row='%s',
            row_ender='</p>',
            help_text_html=' <span class="helptext">%s</span>',
            errors_on_separate_row=True
        )

class MyForm(PlaceholderForm):
    class Meta:
        model = MyModel


That’s it! __init__() do a copy of label, as_p() was pasted from django source with label removed.

Комментариев нет »15.06.2013 03:41:09 | English, Делаю |

Поставить сервер непрерывной интеграции Jenkins на Ubuntu

Дано:

Ubuntu 12.04 LTS (серверная или настольная редакция).

Надо:*

Установить сервер непрерывной интеграции Jenkins.

Решение:

Всё очень просто (см. http://pkg.jenkins-ci.org/debian/):

  1. Добавляем ключ репозитория Jenkins:
    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
  2. Добавляем сам репозиторий:
    echo "deb http://pkg.jenkins-ci.org/debian binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
  3. Обновляем информацию о доступности пакетов программ с учетом нового репозитория:
    sudo apt-get update
  4. Устанавливаем нужное:
    sudo apt-get install jenkins jenkins-cli ant openjdk-6-jdk

Сразу после установки у вас будет доступен сервер Jenkins по адресу http://localhost:8080/ .

Замечания:

Дополнительно установлен интерфейс командной строки для управления Jenkins. Его опции доступны по адресу http://localhost:8080/cli .

Пакеты ant и openjdk-6-jdk нужны для непосредственной работы заданий тестирования и сборки, самому Jenkins они не требуются.

Для начала работы желательно сходить в Центр управления плагинами и обновлениями: http://localhost:8080/pluginManager/ .

 

* Да, я тут лукавлю, ибо цель не в самом сервере НИ, а в том, что он умеет делать, но не всё сразу ;)

Комментариев нет »09.08.2012 10:55:21 | Ubuntu, Делаю | , ,

Бекап как проблема безопасности

Читать всё »

Комментариев нет »25.05.2012 11:06:08 | Делаю |

Установка и настройка языка в Ubuntu

Показано, как установить пакеты локализации на примере русского языка, настроить языковые предпочтения, добавить раскладки клавиатуры и установить их параметры.

Комментариев нет »05.05.2012 17:09:28 | Ubuntu, Делаю | , ,

Саратов такой Саратов!

Видеозарисовки из провинциальной жизни.

Читать всё »

Комментариев нет »04.05.2012 16:22:19 | Живу | ,