I am working in a similar environment - 800+ tables in an external read-only mysql db, plus whatever internal tables I need. To set it up, I used inspectdb to generate starter models for all 800 tables and piped the results to a text file. Then I manually copy out just the model definitions for the tables I actually interact with, and remove the many rows I don't need access to, and paste those into standard Django models. Massaged those as necessary. Then used Django's routers system for getting those definitions to appear in the admin (read only of course). And am able to create custom views via the .using() syntax. It's working so far, but I haven't gotten much farther than initial setup yet. Not sure what you mean by "linked server" - I don't see that mentioned in the docs.
./s