[Django] #22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'

21 views
Skip to first unread message

Django

unread,
Feb 12, 2014, 12:25:35 PM2/12/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
-------------------------------------------+---------------------
Reporter: bmispelon | Owner:
Type: Bug | Status: new
Component: Migrations | Version: 1.6
Severity: Release blocker | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------------+---------------------
Here's how to reproduce:

Create an app with a simple `models.py` (and put it in
`settings.INSTALLED_APPS`):
{{{#!python
from django.db import models

class Foo(models.Model):
pass
}}}

Run `makemigrations` and then `migrate`.

Then change the `Foo` model to be:
{{{#!python
class Foo(models.Model):
foo = models.CharField(max_length=10, default='')
}}}

After that, running `manage.py makemigrations` breaks with the following
traceback:
{{{
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "./django/core/management/__init__.py", line 427, in
execute_from_command_line
utility.execute()
File "./django/core/management/__init__.py", line 419, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "./django/core/management/base.py", line 287, in run_from_argv
self.execute(*args, **options.__dict__)
File "./django/core/management/base.py", line 336, in execute
output = self.handle(*args, **options)
File "./django/core/management/commands/makemigrations.py", line 80, in
handle
changes = autodetector.changes(graph=loader.graph,
trim_to_apps=app_labels or None)
File "./django/db/migrations/autodetector.py", line 33, in changes
changes = self._detect_changes()
File "./django/db/migrations/autodetector.py", line 236, in
_detect_changes
swappable_setting = new_apps.get_model(app_label,
model_name)._meta.get_field_by_name(field_name)[0].swappable_setting
AttributeError: 'CharField' object has no attribute 'swappable_setting'
}}}

Breakage was introduced in commit
11c021336c8cb1c92be998f1a44c89a746275107.

--
Ticket URL: <https://code.djangoproject.com/ticket/22030>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Feb 12, 2014, 12:26:05 PM2/12/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
---------------------------------+---------------------------------------

Reporter: bmispelon | Owner:
Type: Bug | Status: new
Component: Migrations | Version: 1.7-alpha-1
Severity: Release blocker | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+---------------------------------------
Changes (by bmispelon):

* version: 1.6 => 1.7-alpha-1


--
Ticket URL: <https://code.djangoproject.com/ticket/22030#comment:1>

Django

unread,
Feb 13, 2014, 6:26:27 AM2/13/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
---------------------------------+---------------------------------------

Reporter: bmispelon | Owner:
Type: Bug | Status: new
Component: Migrations | Version: 1.7-alpha-1
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+---------------------------------------
Changes (by bmispelon):

* has_patch: 0 => 1


Comment:

Failing test case and tentative fix there:
https://github.com/django/django/pull/2270

--
Ticket URL: <https://code.djangoproject.com/ticket/22030#comment:2>

Django

unread,
Feb 14, 2014, 7:45:10 PM2/14/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
-------------------------------------+-------------------------------------

Reporter: bmispelon | Owner:
Type: Bug | Status: new
Component: Migrations | Version:
Severity: Release blocker | 1.7-alpha-1
Keywords: | Resolution:
Has patch: 1 | Triage Stage: Ready for
Needs tests: 0 | checkin
Easy pickings: 0 | Needs documentation: 0
| Patch needs improvement: 0
| UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by timo):

* stage: Unreviewed => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/22030#comment:3>

Django

unread,
Feb 16, 2014, 8:17:04 PM2/16/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
-------------------------------------+-------------------------------------
Reporter: bmispelon | Owner: Baptiste
Type: Bug | Mispelon <bmispelon@…>
Component: Migrations | Status: closed
Severity: Release blocker | Version:
Keywords: | 1.7-alpha-1
Has patch: 1 | Resolution: fixed
Needs tests: 0 | Triage Stage: Ready for
Easy pickings: 0 | checkin
| Needs documentation: 0
| Patch needs improvement: 0
| UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Baptiste Mispelon <bmispelon@…>):

* owner: => Baptiste Mispelon <bmispelon@…>
* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"6873eeeefbc3a081c98351ff25b4cdc42dbf3d7d"]:
{{{
#!CommitTicketReference repository=""
revision="6873eeeefbc3a081c98351ff25b4cdc42dbf3d7d"
Fixed #22030 -- Don't assume that all fields have a swappable_setting
attribute.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/22030#comment:4>

Django

unread,
Feb 16, 2014, 8:17:04 PM2/16/14
to django-...@googlegroups.com
#22030: AttributeError: 'CharField' object has no attribute 'swappable_setting'
-------------------------------------+-------------------------------------
Reporter: bmispelon | Owner: Baptiste
Type: Bug | Mispelon <bmispelon@…>
Component: Migrations | Status: closed
Severity: Release blocker | Version:
Keywords: | 1.7-alpha-1
Has patch: 1 | Resolution: fixed
Needs tests: 0 | Triage Stage: Ready for
Easy pickings: 0 | checkin
| Needs documentation: 0
| Patch needs improvement: 0
| UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Andrew Godwin <andrew@…>):

In [changeset:"3c547a423f5394d816b5a942570abd904f07bfba"]:
{{{
#!CommitTicketReference repository=""
revision="3c547a423f5394d816b5a942570abd904f07bfba"
Merge pull request #2270 from bmispelon/ticket-22030

Fixed #22030 -- Don't assume that all fields have a swappable_setting

at...
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/22030#comment:5>

Reply all
Reply to author
Forward
0 new messages