summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-04 01:55:51 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-04 01:55:51 +0000
commit185848a526f94cadf06060410dec0f8260c110f9 (patch)
tree3de928d4a88669d959f5351bab15ba781727c19d
parent4d8561a8a8f802f6874979d72eb7facbe20b5f09 (diff)
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
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--tests/modeltests/basic/models.py2
-rw-r--r--tests/modeltests/field_defaults/models.py2
-rw-r--r--tests/regressiontests/i18n/models.py12
4 files changed, 15 insertions, 3 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 65ef687a04..0fff96b230 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -238,7 +238,7 @@ class Field(object):
if self.default is not NOT_PROVIDED:
if callable(self.default):
return self.default()
- return self.default
+ return force_unicode(self.default, strings_only=True)
if not self.empty_strings_allowed or (self.null and settings.DATABASE_ENGINE != 'oracle'):
return None
return ""
diff --git a/tests/modeltests/basic/models.py b/tests/modeltests/basic/models.py
index 58770ef2ce..2f4b932fe0 100644
--- a/tests/modeltests/basic/models.py
+++ b/tests/modeltests/basic/models.py
@@ -152,7 +152,7 @@ TypeError: 'foo' is an invalid keyword argument for this function
>>> a6 = Article(pub_date=datetime(2005, 7, 31))
>>> a6.save()
>>> a6.headline
-'Default headline'
+u'Default headline'
# For DateTimeFields, Django saves as much precision (in seconds) as you
# give it.
diff --git a/tests/modeltests/field_defaults/models.py b/tests/modeltests/field_defaults/models.py
index 23c4733b8f..1132f1ca41 100644
--- a/tests/modeltests/field_defaults/models.py
+++ b/tests/modeltests/field_defaults/models.py
@@ -42,7 +42,7 @@ __test__ = {'API_TESTS':"""
# Access database columns via Python attributes.
>>> a.headline
-'Default headline'
+u'Default headline'
# make sure the two dates are sufficiently close
>>> d = now - a.pub_date
diff --git a/tests/regressiontests/i18n/models.py b/tests/regressiontests/i18n/models.py
index e69de29bb2..e1eefb8477 100644
--- a/tests/regressiontests/i18n/models.py
+++ b/tests/regressiontests/i18n/models.py
@@ -0,0 +1,12 @@
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+class TestModel(models.Model):
+ text = models.CharField(max_length=10, default=_('Anything'))
+
+__test__ = {'API_TESTS': '''
+>>> tm = TestModel()
+>>> tm.save()
+'''
+}
+