Джанго формы: пользовательский формат списка ошибок - PullRequest
0 голосов
/ 10 января 2010

новичок в питоне и джанго. Использование модуля форм и прохождение ошибок по одной (чтобы не просто сваливать их сверху)

Я заметил это решение , чтобы иметь возможность установить собственный формат для ошибок, в моем случае это будет:

<dd class="error">errstr</dd>

И более-менее копируя предоставленный пример, у меня есть следующее:

forms.py (я немного расширил его ради себя)

class DefinitionErrorList(forms.util.ErrorList):

    def __unicode__(self):    
        return self.view_as_dd()

    def view_as_dd(self):
        if not self: 
            return u'' 

        return u'<dd class="error">%s</dd>' % '<br />'.join([u'<span>%s</span>' % e for e in self])

main.py

from poke.forms import PokeForm, DefinitionErrorList

def create_new(response, useless):

    if response.method == 'POST':
        # They posted something, so collect it (duh)

        f = PokeForm(response.POST, error_class=DefinitionErrorList)

        if f.is_valid():
            cd = f.cleaned_data

шаблон для справки

<dt>A small message to remind yourself</dt>
{{ form.message.errors }}
<dd>
    <span class="input_border" style="width: 75%;"> {{ form.message }}</span> 
    <span class="tooltip_span">{{ tooltip.message }}</span>
</dd>

Проблема заключается в том, что с вышеприведенным, если в поле есть ошибка, оно по-прежнему использует формат по умолчанию (), и независимо от того, что я пытаюсь, я не могу использовать свой. Я почти уверен, что пропустил что-то маленькое или неправильно понял некоторые инструкции.

Спасибо за любую помощь, и мне жаль, если я забыл какую-либо информацию!

Редактировать: я использую Django 1.1, если это поможет. И чтобы сделать это (возможно) более понятным, ошибки отображаются нормально, они просто не выглядят так, как я хочу.

1 Ответ

3 голосов
/ 10 января 2010

был длительный билет на это. http://code.djangoproject.com/ticket/6138

последнее обновление говорит, что это исправлено. посмотрим, работает ли он в багажнике. если нет, отправьте вашу ошибку. если это произойдет, получите патч или подождите до следующего выпуска. (хотя я думал, что последний выпуск был после даты последнего обновления в билете).

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