Skip to content

Commit 185848a

Browse files
committed
Fixed #5641 -- Handle lazy translations correctly when used as default arguments. Thanks, permon.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6453 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent 4d8561a commit 185848a

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

django/db/models/fields/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def get_default(self):
238238
if self.default is not NOT_PROVIDED:
239239
if callable(self.default):
240240
return self.default()
241-
return self.default
241+
return force_unicode(self.default, strings_only=True)
242242
if not self.empty_strings_allowed or (self.null and settings.DATABASE_ENGINE != 'oracle'):
243243
return None
244244
return ""

tests/modeltests/basic/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def __unicode__(self):
152152
>>> a6 = Article(pub_date=datetime(2005, 7, 31))
153153
>>> a6.save()
154154
>>> a6.headline
155-
'Default headline'
155+
u'Default headline'
156156
157157
# For DateTimeFields, Django saves as much precision (in seconds) as you
158158
# give it.

tests/modeltests/field_defaults/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __unicode__(self):
4242
4343
# Access database columns via Python attributes.
4444
>>> a.headline
45-
'Default headline'
45+
u'Default headline'
4646
4747
# make sure the two dates are sufficiently close
4848
>>> d = now - a.pub_date

tests/regressiontests/i18n/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from django.db import models
2+
from django.utils.translation import ugettext_lazy as _
3+
4+
class TestModel(models.Model):
5+
text = models.CharField(max_length=10, default=_('Anything'))
6+
7+
__test__ = {'API_TESTS': '''
8+
>>> tm = TestModel()
9+
>>> tm.save()
10+
'''
11+
}
12+

0 commit comments

Comments
 (0)