Django: Отображение formset ошибки правильно

У меня есть встроенный formset для модели, которая имеет unique_together ограничение. И так, когда я ввел данные, которые не выполняют это ограничение, оно отображается:

__all__Please correct the duplicate values below.

Код, который делает это:

    {% for error in formset.errors %}
        {{ error }}<br/>
    {% endfor %}

Я не очень люблю __all__ в начале ошибки и это - вполне ясно ключ словаря, таким образом, я попробовал:

    {% for key, error in formset.errors %}
        {{ key }}: {{ error }}<br/>
    {% endfor %}

Но тогда все, что я получаю:

__all__:

{{ошибка}} не отобразится вообще. Таким образом, что продолжается здесь? И как я отображаю ошибку правильно?

20
задан Monika Sulik 31 January 2010 в 20:15
поделиться

1 ответ

Я использовал что-то под названием Raima Data Manager более десятка лет назад, что квалифицируется как NoSQL. Он называет себя «Set Oriented Database» Его не основан на таблицах, и нет запроса «language», просто C API для запроса подмножеств.

Это быстро и легче работать в C/C + + и SQL, нет сборки строк для передачи в интерпретатор запросов, и данные возвращаются как перечисляемый объект, а не как массив. записи переменного размера являются нормальными и не теряют пространство. Я никогда не видел исходный код, но на интерфейсе были какие-то намеки, что внутренне код много использовал указатели.

Я не уверен, что продукт, которым я пользовался, уже продан, но компания все еще рядом.

-121--2050114-

Позвольте мне дать вам образованное предположение о проникновении Mono в Linux. Для KDE вряд ли существуют приложения, зависящие от Mono. Для GNOME, который может быть другим. Несколько популярных приложений (TomBoy, F-Spot, мой собственный GIMP # stuff;)) нуждаются в Mono.

Теперь предположим, что 50% всех сред рабочего стола - это KDE, другая половина - GNOME. И предположим, что половина пользователей GNOME устанавливают программу, которая зависит от Mono. В этом случае вы получаете около 25% вашей базы пользователей Linux, на которой установлена Mono. Лично я думаю, что это уже довольно высокое число, но если даст вам верхний предел. Моя собственная оценка будет около 10%, но это просто чувство кишечника. Надеюсь, это поможет.

-121--2948959-

Я думаю, что проблема здесь в том, что formset.errors это список словарей, ни один словарь.

Со страницы Django docs на formsets :

>>> formset.errors
[{}, {'pub_date': [u'This field is required.']}]

Посмотрите, устраняет ли что-то подобное проблему: ( Обновлено на основе сероголовых соколов комментариев )

{% for dict in formset.errors %}
    {% for error in dict.values %}
        {{ error }}
    {% endfor %}
{% endfor %}

Если это не удастся, я бы попытался использовать manage.py shell , и попытаться воспроизвести вашу ситуацию в python shell... таким образом, будет легко проверить различные значения и выяснить, что вы должны сделать.

31
ответ дан 29 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: