#24264: foreign key constraint error migrating integer pk to CharField
----------------------------+-------------------------------------
     Reporter:  timgraham   |                    Owner:  nobody
         Type:  Bug         |                   Status:  new
    Component:  Migrations  |                  Version:  1.8alpha1
     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 MarkusH):

 This patch on stable/1.8.x (edbf6de7536f7a6c1e5df019a5e1947d2c9dadf8)
 fixes the problem for me, but is more a band-aid than a valid fix:

 {{{#!patch
 diff --git a/django/db/models/options.py b/django/db/models/options.py
 index fa97265..e64990d 100644
 --- a/django/db/models/options.py
 +++ b/django/db/models/options.py
 @@ -687,7 +687,8 @@ class Options(object):
              for f in fields_with_relations:
                  if not isinstance(f.rel.to, six.string_types):
                      # Set options_instance -> field
 -                    related_objects_graph[f.rel.to._meta].append(f)
 +                    opts = f.rel.to._meta
 +                    related_objects_graph[opts.app_label,
 opts.object_name].append(f)

          for model in all_models:
              # Set the relation_tree using the internal __dict__. In this
 way
 @@ -695,7 +696,8 @@ class Options(object):
              # __dict__ takes precedence over a data descriptor (such as
              # @cached_property). This means that the _meta._relation_tree
 is
              # only called if related_objects is not in __dict__.
 -            related_objects = related_objects_graph[model._meta]
 +            opts = model._meta
 +            related_objects = related_objects_graph[opts.app_label,
 opts.object_name]

              # If related_objects are empty, it makes sense to set
              # EMPTY_RELATION_TREE. This will avoid allocating multiple
 empty
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24264#comment:3>
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/067.9cdbfbd4091b0ee59b7061f6b43dfe2f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to