diff --git a/django/newforms/fields.py b/django/newforms/fields.py index a32018e108..ec3b7fc318 100644 --- a/django/newforms/fields.py +++ b/django/newforms/fields.py @@ -34,6 +34,8 @@ class Field(object): creation_counter = 0 def __init__(self, required=True, widget=None, label=None): + if label is not None: + label = smart_unicode(label) self.required, self.label = required, label widget = widget or self.widget if isinstance(widget, type): diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index 058a3d8958..474d4a20ae 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -2062,6 +2062,14 @@ underscores converted to spaces, and the initial letter capitalized.
  • Password1:
  • Password (again):
  • +A label can be a Unicode object or a bytestring with special characters. +>>> class UserRegistration(Form): +... username = CharField(max_length=10, label='ŠĐĆŽćžšđ') +... password = CharField(widget=PasswordInput, label=u'\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111') +>>> p = UserRegistration(auto_id=False) +>>> p.as_ul() +u'
  • \u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111:
  • \n
  • \u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111:
  • ' + # Forms with prefixes ######################################################### Sometimes it's necessary to have multiple forms display on the same HTML page,