Джанго - нужна ли модели собственная таблица, если она наследуется исключительно для смены менеджера?
Я читал эту ветку, которая касается вопроса о том, чтобы комментарии Django использовали select_related() для поля "user", тем самым уменьшая ненужные SQL-запросы.
Предложение, которое мне нравится больше всего, состоит в том, чтобы создать собственную модель комментариев и переопределить используемый в данный момент менеджер.
Вот что у меня есть:
#models.py
class LightCommentManager(CommentManager):
def get_query_set(self):
qs = (super(CommentManager, self).get_query_set().select_related('user'))
return qs
class LightComment(Comment):
objects = LightCommentManager()
class meta:
managed = False
Все это прекрасно работает, но когда я синхронизирую, Django все еще создает таблицу для LightComment. Действительно ли мне нужна эта таблица, если все, что я изменяю, это менеджер, и почему Django создает ее, если для параметра управления установлено значение false?
Заранее спасибо,
1 ответ
Для начала ваш внутренний класс должен называться Meta
не meta
,
А не managed = False
, вы должны использовать proxy = True
чтобы показать, что вы создаете модель прокси, а не другую реальную модель.