diff options
Diffstat (limited to 'django/db')
| -rw-r--r-- | django/db/models/fields/related.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 0a7bb86e92..c2c07b8c94 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -943,7 +943,10 @@ class ManyToManyField(RelatedField, Field): # If initial is passed in, it's a list of related objects, but the # MultipleChoiceField takes a list of IDs. if defaults.get('initial') is not None: - defaults['initial'] = [i._get_pk_val() for i in defaults['initial']] + initial = defaults['initial'] + if callable(initial): + initial = initial() + defaults['initial'] = [i._get_pk_val() for i in initial] return super(ManyToManyField, self).formfield(**defaults) def db_type(self): |
