Django Multi-Table Наследование: укажите пользовательское имя столбца в одну к одному

Я пытаюсь создать карт Django ORM, совместимый с существующим моделью данных , поэтому я пытаюсь работать с существующим набором таблицы и имен столбцов.

У меня есть ситуация на наследстве много столов, где информация о классе вытекает из объекта класса. Я хотел бы позволить Django справиться с этим обычным способом:

class Object(models.Model):
    class Meta:
        db_table = "object"          

class InformationObject(Object):
    class Meta:
        db_table = "information_object"

в этом случае django автоматически создаст однозначное поле на наследственную модель Object_ptr_id . Однако на схеме я ограничивался использовать, ссылка на объект просто называется «ID». Итак:

Есть ли способ каким-то образом указать имя столбца Django Auto magiciany использует для многоболкового наследования?

альтернатива, которую мне придется использовать в противном случае, - это использовать явную Поле в одно поле, но тогда я не смогу наследовать методы без баз данных из модели объекта:

class Object(models.Model):
    class Meta:
        db_table = "object"          

class InformationObject(models.Model):
    class Meta:
        db_table = "information_object"
    id = models.OneToOneField(Object, primary_key=True, db_column="id")  

любые идеи? Может быть, я мог бы создать общий базовый класс для них обоих, и поставить там методы без БД ...?

8
задан Mikesname 1 September 2011 в 10:55
поделиться