Index: tests/regressiontests/model_regress/models.py
===================================================================
--- tests/regressiontests/model_regress/models.py	(revision 7316)
+++ tests/regressiontests/model_regress/models.py	(working copy)
@@ -25,6 +25,8 @@
     #5218: Test models with non-default primary keys / AutoFields
     movie_id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=60)
+    rating = models.DecimalField(max_digits=6, decimal_places=3, default=2.5)
+    
 
 __test__ = {'API_TESTS': """
 (NOTE: Part of the regression test here is merely parsing the model
@@ -50,6 +52,36 @@
 >>> a4 = Article.objects.get(pk=a3.id)
 >>> len(a4.article_text)
 5000
+"""}
 
+import locale
+test_locale_available  = False
+try:
+    locale.setlocale(locale.LC_NUMERIC,'fr_FR')
+    test_locale_available  = True
+except:
+    pass
+
+if test_locale_available:
+    __test__['LOCALE_TESTS'] = """
+# check for #6783
+>>> from django.db.models.fields import DecimalField
+>>> import locale
+>>> pre_locale = locale.getlocale()[0]
+>>> d = DecimalField(max_digits=6, decimal_places=3) 
+>>> locale.setlocale(locale.LC_NUMERIC,'fr_FR')
+'fr_FR'
+>>> print "%.1f" % 2.3
+2.3
+
+# locale is in effect, but print doesn't use it, and neither does DecimalField.format_number
+>>> locale.format("%.1f",2.3)
+'2,3'
+>>> print d.format_number(3.456) 
+3.456
+
+# we can safely save decimalfields into the DB even with the funky locale
+>>> m = Movie(name = "Rambo", rating = 4.2)
+>>> m.save()
+>>> res = locale.setlocale(locale.LC_NUMERIC, pre_locale)
 """
-}
