#django #inheritance #model #field
#django #наследование #Модель #поле
Вопрос:
Рассмотрим следующий пример:
class Base(models.Model):
myfield = models.CharField()
class Derived(Base):
pass
Теперь базовый и производный классы будут иметь разные таблицы в базах данных.
Мой вопрос в том, как узнать, к какой таблице принадлежит myfield?
Комментарии:
1. Некоторые документы по Django, которые я нашел при поиске ответа: django-model-internals-reference.readthedocs.org/en/latest /…
Ответ №1:
Используйте _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