#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.

Reply via email to