2015-06-06 2 views
0

У меня есть модель с полем is_deleted. Я определил пользовательский менеджер.Исключить объекты, имеющие `is_deleted = True` в Django

Могу ли я удостовериться, что я всегда исключаю объекты, имеющие is_deleted = True?

Интересно, могу ли я переопределить __init__() или что-то непосредственно в models.Manager вместо исключения во всех функциях, определенных в моем пользовательском менеджере.

ответ

1

Вы всегда можете переопределить менеджер объекта по умолчанию для исключения записей по умолчанию:

class DeletedManager(models.Manager): 
    def get_queryset(self): 
     return super(DeletedManager, self).get_queryset().filter(is_deleted=False) 


class YourModel(models.Model): 
    . . . 

    objects = DeletedManager() 
Смежные вопросы