mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #28345 -- Applied limit_choices_to during ModelForm.__init__().
field_for_model() now has an additional keyword argument, apply_limit_choices_to, allowing it to continue to be used to create form fields dynamically after ModelForm.__init__() is called. Thanks Tim Graham for the review.
This commit is contained in:
parent
5cbcb36839
commit
a1be12fe19
3 changed files with 37 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
|||
import datetime
|
||||
import os
|
||||
from decimal import Decimal
|
||||
from unittest import skipUnless
|
||||
from unittest import mock, skipUnless
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import (
|
||||
|
@ -2906,6 +2906,16 @@ class LimitChoicesToTests(TestCase):
|
|||
fields = fields_for_model(StumpJoke, ['has_fooled_today'])
|
||||
self.assertSequenceEqual(fields['has_fooled_today'].queryset, [self.threepwood])
|
||||
|
||||
def test_callable_called_each_time_form_is_instantiated(self):
|
||||
field = StumpJokeForm.base_fields['most_recently_fooled']
|
||||
with mock.patch.object(field, 'limit_choices_to') as today_callable_dict:
|
||||
StumpJokeForm()
|
||||
self.assertEqual(today_callable_dict.call_count, 1)
|
||||
StumpJokeForm()
|
||||
self.assertEqual(today_callable_dict.call_count, 2)
|
||||
StumpJokeForm()
|
||||
self.assertEqual(today_callable_dict.call_count, 3)
|
||||
|
||||
|
||||
class FormFieldCallbackTests(SimpleTestCase):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue