Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Появилась возможность вызовов QuerySet-ов напрямую из менеджера:
class ChainerManager(models.Manager):
"""
Reference: http://djangosnippets.org/snippets/562/
"""
def __init__(self, qs_class=models.query.QuerySet):
super(ChainerManager, self).__init__()
self.queryset_class = qs_class
def get_query_set(self):
return self.queryset_class(self.model)
def __getattr__(self, attr, *args):
try:
return getattr(self.__class__, attr, *args)
except AttributeError:
return getattr(self.get_query_set(), attr, *args)
NewsQuerySet(models.query.QuerySet):
def live(self):
return self.filter(state='published')
def interesting(self):
return self.filter(interesting=True)
NewsItem(models.Model):
objects = ChainerManager(NewsQuerySet)
ChainerManager(NewsQuerySet).live().interesting()
[<NewsItem: ...>]
# ну или так:
NewsItem.objects.filter().live().interesting()
Новая мидлварь django.contrib.sites.middleware.CurrentSiteMiddleware позволяет установливать текущий сайт при каждом запросе.
Новый подкласс HttpResponse — JsonResponse.
Что нового нас ожидает в Django 1.7