Django ForeignKey which does not require referential integrity?
This is probably as simple as declaring a ForeignKey and creating the column without actually declaring it as a FOREIGN KEY.  That way, you'll get o.obj_id, o.obj will work if the object exists, and--I think--raise an exception if you try to load an object that doesn't actually exist (probably DoesNotExist).
However, I don't think there's any way to make syncdb do this for you.  I found syncdb to be limiting to the point of being useless, so I bypass it entirely and create the schema with my own code.  You can use syncdb to create the database, then alter the table directly, eg. ALTER TABLE tablename DROP CONSTRAINT fk_constraint_name.
You also inherently lose ON DELETE CASCADE and all referential integrity checking, of course.
I'd like to set up a ForeignKey field in a django model which points to another table some of the time.  But I want it to be okay to insert an id into this field which refers to an entry in the other table which might not be there.  So if the row exists in the other table, I'd like to get all the benefits of the ForeignKey relationship.  But if not, I'd like this treated as just a number.  
Is this possible?  Is this what Generic relations are for?