Index: docs/ref/contrib/localflavor.txt
===================================================================
--- docs/ref/contrib/localflavor.txt	(revision 16452)
+++ docs/ref/contrib/localflavor.txt	(working copy)
@@ -784,6 +784,17 @@
     A ``Select`` widget that uses a list of Norwegian municipalities (fylker) as
     its choices.
 
+Paraguay (``py``)
+=================
+
+.. class:: py.forms.PyDepartmentSelect
+
+    A ``Select`` widget with a list of Paraguayan departments as choices.
+
+.. class:: py.forms.PyNumeratedDepartmentSelect
+
+    A ``Select`` widget with a roman numerated list of Paraguayan departments as choices.
+
 Peru (``pe``)
 =============
 
Index: django/contrib/localflavor/py/py_department.py
===================================================================
--- django/contrib/localflavor/py/py_department.py	(revision 0)
+++ django/contrib/localflavor/py/py_department.py	(revision 0)
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+
+# http://www.statoids.com/upy.html
+
+DEPARTMENT_CHOICES = (
+    ('AG', u'Alto Paraguay'),
+    ('AA', u'Alto Paraná'),
+    ('AM', u'Amambay'),
+    ('AS', u'Asunción'),
+    ('BQ', u'Boquerón'),
+    ('CG', u'Caaguazú'),
+    ('CZ', u'Caazapá'),
+    ('CY', u'Canindeyú'),
+    ('CE', u'Central'),
+    ('CN', u'Concepción'),
+    ('CR', u'Cordillera'),
+    ('GU', u'Guairá'),
+    ('IT', u'Itapúa'),
+    ('MI', u'Misiones'),
+    ('NE', u'Ñeembucú'),
+    ('PG', u'Paraguarí'),
+    ('PH', u'Pdte. Hayes'),
+    ('SP', u'San Pedro'),
+)
+
+DEPARTMENT_ROMAN_CHOICES = (
+    ('CN',  u'I    Concepción'),
+    ('SP',  u'II   San Pedro'),
+    ('CR',  u'III  Cordillera'),
+    ('GU',  u'IV   Guairá'),
+    ('CG',  u'V    Caaguazú'),
+    ('CZ',  u'VI   Caazapá'),
+    ('IT',  u'VII  Itapúa'),
+    ('MI',  u'VIII Misiones'),
+    ('PG',  u'IX   Paraguarí'),
+    ('AA',  u'X    Alto Paraná'),
+    ('CE',  u'XI   Central'),
+    ('NE',  u'XII  Ñeembucú'),
+    ('AM',  u'XIII Amambay'),
+    ('CY',  u'XIV  Canindeyú'),
+    ('PH',  u'XV   Pdte. Hayes'),
+    ('AG',  u'XVI  Alto Paraguay'),
+    ('BQ',  u'XVII Boquerón'),
+    ('AS',  u'XVIII Asunción'),
+)
Index: django/contrib/localflavor/py/__init__.py
===================================================================
Index: django/contrib/localflavor/py/forms.py
===================================================================
--- django/contrib/localflavor/py/forms.py	(revision 0)
+++ django/contrib/localflavor/py/forms.py	(revision 0)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+"""
+PY-specific Form helpers.
+"""
+
+from django.forms import ValidationError
+from django.forms.fields import RegexField, CharField, Select, EMPTY_VALUES
+
+class PyDepartmentSelect(Select):
+    """
+    A Select widget with a list of Paraguayan departments as choices.
+    """
+    def __init__(self, attrs=None):
+        from py_department import DEPARTMENT_CHOICES
+        super(PyDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES)
+
+
+class PyNumeratedDepartmentSelect(Select):
+    """
+    A Select widget with a roman numerated list of Paraguayan departments as choices.
+    """
+    def __init__(self, attrs=None):
+        from py_department import DEPARTMENT_ROMAN_CHOICES
+        super(PyNumeratedDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_ROMAN_CHOICES)
Index: tests/regressiontests/forms/tests/__init__.py
===================================================================
--- tests/regressiontests/forms/tests/__init__.py	(revision 16452)
+++ tests/regressiontests/forms/tests/__init__.py	(working copy)
@@ -40,6 +40,7 @@
     NLLocalFlavorTests,
     PLLocalFlavorTests,
     PTLocalFlavorTests,
+    PYLocalFlavorTests,
     ROLocalFlavorTests,
     RULocalFlavorTests,
     SELocalFlavorTests,
Index: tests/regressiontests/forms/localflavor/py.py
===================================================================
--- tests/regressiontests/forms/localflavor/py.py	(revision 0)
+++ tests/regressiontests/forms/localflavor/py.py	(revision 0)
@@ -0,0 +1,53 @@
+from django.contrib.localflavor.py.forms import (PyDepartmentSelect,
+    PyNumeratedDepartmentSelect)
+
+from utils import LocalFlavorTestCase
+
+class PYLocalFlavorTests(LocalFlavorTestCase):
+    def test_PyDepartmentSelect(self):
+        py = PyDepartmentSelect()
+        out = u'''<select name="department">
+<option value="AG">Alto Paraguay</option>
+<option value="AA">Alto Paran\xe1</option>
+<option value="AM">Amambay</option>
+<option value="AS">Asunci\xf3n</option>
+<option value="BQ">Boquer\xf3n</option>
+<option value="CG">Caaguaz\xfa</option>
+<option value="CZ">Caazap\xe1</option>
+<option value="CY">Canindey\xfa</option>
+<option value="CE">Central</option>
+<option value="CN">Concepci\xf3n</option>
+<option value="CR">Cordillera</option>
+<option value="GU">Guair\xe1</option>
+<option value="IT">Itap\xfaa</option>
+<option value="MI">Misiones</option>
+<option value="NE">\xd1eembuc\xfa</option>
+<option value="PG">Paraguar\xed</option>
+<option value="PH">Pdte. Hayes</option>
+<option value="SP">San Pedro</option>
+</select>'''
+        self.assertEqual(py.render('department', 'M'), out)
+
+    def test_PyNumeratedDepartmentSelect(self):
+        py = PyNumeratedDepartmentSelect()
+        out = u'''<select name="department">
+<option value="CN">I    Concepci\xf3n</option>
+<option value="SP">II   San Pedro</option>
+<option value="CR">III  Cordillera</option>
+<option value="GU">IV   Guair\xe1</option>
+<option value="CG">V    Caaguaz\xfa</option>
+<option value="CZ">VI   Caazap\xe1</option>
+<option value="IT">VII  Itap\xfaa</option>
+<option value="MI">VIII Misiones</option>
+<option value="PG">IX   Paraguar\xed</option>
+<option value="AA">X    Alto Paran\xe1</option>
+<option value="CE">XI   Central</option>
+<option value="NE">XII  \xd1eembuc\xfa</option>
+<option value="AM" selected="selected">XIII Amambay</option>
+<option value="CY">XIV  Canindey\xfa</option>
+<option value="PH">XV   Pdte. Hayes</option>
+<option value="AG">XVI  Alto Paraguay</option>
+<option value="BQ">XVII Boquer\xf3n</option>
+<option value="AS">XVIII Asunci\xf3n</option>
+</select>'''
+        self.assertEqual(py.render('department', 'AM'), out)
Index: tests/regressiontests/forms/localflavortests.py
===================================================================
--- tests/regressiontests/forms/localflavortests.py	(revision 16452)
+++ tests/regressiontests/forms/localflavortests.py	(working copy)
@@ -27,6 +27,7 @@
 from localflavor.nl import NLLocalFlavorTests
 from localflavor.pl import PLLocalFlavorTests
 from localflavor.pt import PTLocalFlavorTests
+from localflavor.py import PYLocalFlavorTests
 from localflavor.ro import ROLocalFlavorTests
 from localflavor.ru import RULocalFlavorTests
 from localflavor.se import SELocalFlavorTests
