Джанго - нужна ли модели собственная таблица, если она наследуется исключительно для смены менеджера?

Я читал эту ветку, которая касается вопроса о том, чтобы комментарии 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 чтобы показать, что вы создаете модель прокси, а не другую реальную модель.

Другие вопросы по тегам