From 1abf126e612fca1efec2986400e2996be8130d22 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Sat, 19 Feb 2011 14:45:54 +0000 Subject: Fixed #9161 -- Ensure that ModelMultipleChoiceField respects to_field_name in validation. Thanks to Honza for the report, and Gregor Müllegger for the patch. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.djangoproject.com/svn/django/trunk@15587 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/modeltests/model_forms/models.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests') diff --git a/tests/modeltests/model_forms/models.py b/tests/modeltests/model_forms/models.py index b9b8d16c07..2e820a6779 100644 --- a/tests/modeltests/model_forms/models.py +++ b/tests/modeltests/model_forms/models.py @@ -1562,6 +1562,25 @@ ValidationError: [u'Select a valid choice. z is not one of the available choices +# to_field_name should also work on ModelMultipleChoiceField ################## + +>>> field = ModelMultipleChoiceField(Inventory.objects.all(), to_field_name='barcode') +>>> for choice in field.choices: +... print choice +(86, u'Apple') +(22, u'Pear') +(87, u'Core') +>>> field.clean([86]) +[] + +>>> class SelectInventoryForm(forms.Form): +... items = ModelMultipleChoiceField(Inventory.objects.all(), to_field_name='barcode') +>>> form = SelectInventoryForm({'items': [87, 22]}) +>>> form.is_valid() +True +>>> form.cleaned_data +{'items': [, ]} + # Model field that returns None to exclude itself with explicit fields ######## >>> class CustomFieldForExclusionForm(ModelForm): -- cgit v1.3