Джанго: выяснение, какая таблица в иерархии наследования имеет поле - PullRequest
2 голосов
/ 10 апреля 2011

Рассмотрим следующий пример:

class Base(models.Model):
    myfield = models.CharField()
class Derived(Base):
    pass

Теперь базовые и производные классы будут иметь разные таблицы в базах данных.

Мой вопрос: как узнать, к какой таблице принадлежит myfield?

1 Ответ

1 голос
/ 10 апреля 2011

Использование _meta.get_fields_with_model() метод:

for field, model in Derived._meta.get_fields_with_model():
    if field.name == 'myfield':
        model = model or Derived
        print 'myfield belongs to %s' % model._meta.db_table
...