This may be happening because foreign key constraints can be applied only to identical columns that are unique.
So, check that they’re unique, and add an index. (If you try to add the index, it’ll fail if the values are not unique.)
ALTER TABLE X ADD CONSTRAINT UNIQUE INDEX (COLX);
Then, if you still get the error, check that the character sets are the same on both tables. (I don’t think Django’s db reflection keeps track of that.)
ALTER TABLE X SET CONVERT TO CHARACTER SET utf8;
Also, if the charsets are different, check the default charset for the table. Make sure it’s “utf8”.
ALTER DATABASE Y SET DEFAULT CHARACTER SET utf8;