Is it safe to write your own table creation SQL for use with Django, when the generated tables are not enough?
Yes. 
I don't see why not, but that would be most unconventional and breaking convention usually leads to complications down the track.
Describe the problem you think it will solve and perhaps someone can offer a more conventional solution.
I need to have some references in my table and a bunch of "deferrable initially deferred" modifiers, but I can't find a way to make this work in the default generated Django code.
Is it safe to create the table manually and still use Django models?