Значение по умолчанию переопределения Django формирует сообщения об ошибках

Попытайтесь вставить следующее в файл JavaScript в Visual Studio 08 и игре вокруг с ним:

var Namespace = {};
    Namespace.AnotherNamespace = {};

Namespace.AnotherNamespace.annoyingAlert = function(_message)
{
    /// The message you want alerted two times
    /// This is really annoying!!

    alert(_message);
    alert(_message);
};

Intellisense в изобилии!

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

Scott Gu

50
задан Brock 26 September 2009 в 07:04
поделиться

4 ответа

Самый простой способ - предоставить свой набор ошибок по умолчанию в определение поля формы. Поля формы могут принимать для этого именованный аргумент. Например:

my_default_errors = {
    'required': 'This field is required',
    'invalid': 'Enter a valid value'
}

class MyForm(forms.Form):
    some_field = forms.CharField(error_messages=my_default_errors)
    ....

Надеюсь, это поможет.

71
ответ дан 7 November 2019 в 10:55
поделиться

Вы можете посмотреть на отличную поддержку i18n в Django.

3
ответ дан 7 November 2019 в 10:55
поделиться

Хм, похоже, нет простого решения проблемы.

Просматривая код django, я обнаружил, что сообщения об ошибках по умолчанию жестко закодированы в каждом классе поля формы, например:

class CharField(Field):
    default_error_messages = {
        'max_length': _(u'Ensure this value has at most %(max)d characters (it has %(length)d).'),
        'min_length': _(u'Ensure this value has at least %(min)d characters (it has %(length)d).'),
    }

И самый простой способ - использовать аргумент error_messages , поэтому мне пришлось написать функцию-оболочку:

def DZForm(name, args = {}):
    error_messages = {
        'required': u'required',
        'invalid': u'invalid',
    }
    if 'error_messages' in args.keys():
        args['error_messages'] = error_messages.update(args['error_messages'])
    else:
        args['error_messages'] = error_messages
    return getattr(forms, name)(**args)

Если smdb знает более элегантный способ сделать это, то действительно будет рад увидеть это :)

Спасибо!

3
ответ дан 7 November 2019 в 10:55
поделиться

Поскольку эта страница появляется при поиске, возможно, стоит добавить мои 0,02 доллара, даже если вопрос старый. (Я все еще привыкаю к ​​особому этикету Stack Overflow.)

Знак подчеркивания («_») - это псевдоним (если это правильный термин) для ugettext_lazy; просто посмотрите на операторы импорта в верхней части файла с «жестко запрограммированными» сообщениями. Тогда должны помочь документы по интернационализации Django, например http://www.djangobook.com/en/2.0/chapter19/

-5
ответ дан 7 November 2019 в 10:55
поделиться
Другие вопросы по тегам:

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