Формы стилей и значения форм Django - PullRequest
2 голосов
/ 09 марта 2009

Я пытаюсь стилизовать форму с помощью CSS. Прежде всего, я не видел полный пример, кроме как в официальной документации, поэтому я был бы признателен за любые записи в блогах или статьи.

Теперь в моей форме типичный Чарфилд переводится на html следующим образом:

<input type="text" name="artists" id="id_artists" />

Если моя форма содержит ошибки в каком-либо поле, предыдущий Charfield запоминает значение и отправляет:

<input type="text" name="artists" value="Pink Floyd" id="id_artists"  />

Как я могу получить это значение (value="Pink Floyd") в формах Django? Скажем, мое поле {{form.artists}}, я могу использовать {{form.artists}} в качестве поля, {{form.artists.label}} в качестве метки, {{form.artists.errors}} и {{form.artists.help_text}}, но как насчет этого значения?

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 09 марта 2009

Создайте поле ввода специально, а не полагайтесь на django для его автоматического создания.

Что-то вроде:

<input type="text" name="artists" id="id_artists" value="{{form.artists.title}}" />

должно работать

2 голосов
/ 09 марта 2009

Текущее значение поля можно получить из свойства data:

{{ form.artists.data }}

Я не вижу документации Django, упоминающей это, но она работает ...

0 голосов
/ 06 марта 2011

Вы также можете добавить дополнительную проверку в класс формы, чтобы что-то сделать с данными формы. От djangobook.com :

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    email = forms.EmailField(required=False)
    message = forms.CharField(widget=forms.Textarea)

    def clean_message(self):
        message = self.cleaned_data['message']
        num_words = len(message.split())
        if num_words < 4:
            raise forms.ValidationError("Not enough words!")
        return message

Внутри метода clean_message вы можете получить доступ к данному полю, используя словарь self.cleaned_data. Этот словарь доступен для любой проверенной формы.

Обязательно верните поле, в этом случае message, иначе возвращается None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...