#25276: It would be very nice if django AlterField raised an error when ordered
to
alter that doesn't exist
-----------------------------+--------------------
Reporter: jbzdak | Owner: nobody
Type: New feature | Status: new
Component: Migrations | Version: 1.8
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-----------------------------+--------------------
If I have following model in app ``foo``:
{{{#!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.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/049.9551c86683355bd8aec25bb8a69eca34%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.