Presently, there's not a way without altering models to be able to have inline models if dependencies are declared on the "owning" class. Allow me to explain with code:
class Person(models.Model):
address = models.OneToOneField("Address")
class Monument(models.Model):
address = models.OneToOneField("Address")
class Sighting(models.Model):
address = models.OneToOneField("Address")
class Address(models.Model):
name = models.CharField(...)
street_address = models.CharField(...)
The goal with this code is that a `Person` owns an `Address` like a `Monument` owns an `Address` like a `Sighting` owns an `Address`. There's really no reason for an `Address` to know of itself what it is owned by, it could be owned by multiple different objects. The lookup needs to happen from the owner.
When attempting to make inlines for these types of relations, an error is thrown:
class AddressInline(admin.TabularInline):
model = Address
fields = ('street_address',)
class SightingAdmin(admin.ModelAdmin):
inlines = (AddressInline,)

IMHO, inlines should work regardless of which side the relationship is declared on. Can I submit this for a feature request?