{{{#!python
class Foo(models.Model):
bar = modeld.CharField(max_length=500)
}}}
And I write (by hand) following migration:
{{{#!python
class Migration(migrations.Migration):
dependencies = [
('foo', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='foo',
name='baz', #Notice there is a typo in field name
field=modeld.CharField(max_length=100)
),
]
}}}
Currently this migration is a does nothing, however I feel that more
appropriate action would be to notify user that he is trying to alter
nonexistent field.
Current implementation is a NOOP because (see:
https://github.com/django/django/blob/master/django/db/migrations/operations/fields.py#L178)
it is implemented in following way:
{{{#!python
state.models[app_label, self.model_name_lower].fields = [
(n, field if n == self.name else f)
for n, f in
state.models[app_label, self.model_name_lower].fields
]
state.reload_model(app_label, self.model_name_lower)
}}}
If someone says this is a sensible feature request I may modify migration
code to raise if there is an error.
I have actually lost some hours of my life due to this behaviour when I
was writing a migration that moved models between applications.
--
Ticket URL: <https://code.djangoproject.com/ticket/25276>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* version: 1.8 => master
* needs_docs: => 0
* type: New feature => Cleanup/optimization
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/25276#comment:1>
* cc: desecho@… (added)
Comment:
I can't reproduce. I am getting `django.core.exceptions.FieldDoesNotExist:
Foo has no field named 'baz'`.
--
Ticket URL: <https://code.djangoproject.com/ticket/25276#comment:2>
Old description:
New description:
If I have following model in app `foo`:
{{{#!python
class Foo(models.Model):
bar = models.CharField(max_length=500)
}}}
{{{#!python
class Migration(migrations.Migration):
}}}
--
--
Ticket URL: <https://code.djangoproject.com/ticket/25276#comment:3>
* status: new => closed
* resolution: => worksforme
Comment:
I also can't reproduce.
--
Ticket URL: <https://code.djangoproject.com/ticket/25276#comment:4>