Так как англоязычный мир использует в качестве разделителя десятичных дробей точку, у русскоязычных пользователей возникают некоторые проблемы. Начиная с Django 1.2 появилась возможность указать разделитель самостоятельно, но использоваться он будет только при выводе дробных, в формах же всё равно будет ожидаться только точка, даже если в локали ru-ru принята запятая.

Какие неудобства это вызывает? Например, если юзер копирует дробное значение со страницы на сайте или из таблицы в экселе и вставляет его в форму. В этом случае он будет удивлён ошибке валидации формы - число с запятой за число вообще не считается. Конечно, можно просто забить, и использовать везде точку, но не обязательно.

Выходов из ситуации несколько - либо заменять самостоятельно во входящих данных запятые на точки в классе формы, использовать модифицированный DecimalField, etc. Либо написать небольшой monkey patch, который будет делать то же самое, но во всех формах сразу, включая интерфейс администратора. Для этого добавим в project/__init__.py следующий код:

from django.forms import fields
from django.utils.encoding import smart_str
from django.utils import formats
from django.core.exceptions import ValidationError
from django.core import validators

from decimal import Decimal, DecimalException


def to_python(self, value):
    if value in validators.EMPTY_VALUES:
        return None
    if self.localize:
        value = formats.sanitize_separators(value)
    value = smart_str(value).strip()
    value = value.replace(',', '.')
    try:
        value = Decimal(value)
    except DecimalException:
        raise ValidationError(self.error_messages['invalid'])
    return value


fields.DecimalField.to_python = to_python