Если я правильно понял ваш вопрос, проблема в том, что £
автоматически экранируется библиотекой форм и поэтому отображается как £
для пользователя, а не как £.
Возможно, вы сможете решитьпроблема заключается в том, чтобы сообщить django, что HTML-код безопасен и его нельзя экранировать (это может быть дыра в безопасности XSS):
from django.utils.safestring import mark_safe
choices = (mark_safe('£ 2,500'), ...)
В качестве альтернативы вы также можете избежать использования escape-последовательностей, введя символынапрямую (эти сущности в любом случае не являются частью текущих спецификаций HTML, вам следует просто использовать вместо этого юникод):
# -*- coding: utf-8 -*-
choices = (u'£ 2,500', ...)
Комментарий с кодировкой должен быть первой строкой текущего файла, сообщая интерпретатору, чтоВы используете кодировку Unicode в исходном файле.