#28073: RemoveField.state_forwards() crashes with AttributeError: 'NoneType' object has no attribute 'is_relation' ---------------------------------+------------------------------------ Reporter: Logan Gunthorpe | Owner: nobody Type: Bug | Status: new Component: Migrations | Version: 1.11 Severity: Normal | Resolution: Keywords: | Triage Stage: Accepted Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 ---------------------------------+------------------------------------
Comment (by Python Force): I cannot because it took me 2 days to find out what it was and now it is fixed. Problem was that the migration with the missing field in the database based on that function was coming empty and you calling a method on that which is throwing an error. As Logan said "Seeing as the comment above implies that old_field is None or ... would be a valid solution I don't see why you wouldn't just put that in." I have explained everything above in details that is a simple project and it happened precisely just like that. I am not sure how better I can describe it. I am not sure why you have changed that migration function if this one is working well...in 1.10.7. {{{ def state_forwards(self, app_label, state): new_fields = [] for name, instance in state.models[app_label, self.model_name_lower].fields: if name != self.name: new_fields.append((name, instance)) state.models[app_label, self.model_name_lower].fields = new_fields state.reload_model(app_label, self.model_name_lower) }}} I know 1.11 is a new version but I do not think it would crash the system anyway - This {{{ old_field = None }}} is causing the error. And as a good practice and good software engineering if it is None why you did not even put there {{{ try: except }}} at least. Logan and I gave you a hint, and it has happened to 2 people already within 3 months, so something must be going on in there. -- Ticket URL: <https://code.djangoproject.com/ticket/28073#comment:11> 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 django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/065.7663a1f205af4b9050cfe1036e14c581%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.