from django.db import models class QuerySetManager(models.Manager): def get_query_set(self): return self.model.QuerySet(self.model) def __getattr__(self, attr, *args): return getattr(self.get_query_set(), attr, *args)Внутрь класса где-то рекомендовалось добавить полем "
use_for_related_fields=True
", но работает без него. Зато не работает без __getattr__, пишет: 'RelatedManager' object has no attribute 'useractive', вопреки ещё какой-то рекомендации из инета. В итоге имеем некий хак.Используется как-то так:
class Clazz(models.Model): ... objects = QuerySetManager() ... class QuerySet(models.query.QuerySet): def useractive(self,date): return self.filter( Q(active=True) & (Q(date__isnull=True)|Q(date__gte=date)) )И потом во вьюшках:
Clazz.objects.useractive(now).order_by('date')
Комментариев нет:
Отправить комментарий