Комментарии 14
Появилась возможность вызовов QuerySet-ов напрямую из менеджера:
Давно пора. Клепать по менеджеру на каждый чих совсем не дело, особенно, когда это просится сделать через classmethod. Пытался пользоваться 1.7 — не договорился с миграцией, репорты висят, еще не фиксили на тот момент. И новый префетч клевый, да.
На тему 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()
> Курсор баз данных, теперь может использоваться в качестве контекст менеджера:
А в коде, который написан под этим утверждением, context manager даже и не пахнет.
А в коде, который написан под этим утверждением, context manager даже и не пахнет.
А как отечественные django-девелоперы относятся к грядущей замене терминов master/slave на leader / follower в django?
github.com/django/django/pull/2692
github.com/django/django/pull/2692
Требуют использования барин/холоп.
крайний вариант уже master/replica code.djangoproject.com/ticket/22707#comment:2
Новая мидлварь django.contrib.sites.middleware.CurrentSiteMiddleware позволяет установливать текущий сайт при каждом запросе.
А обещали, что sites сдохнет…
Новый подкласс HttpResponse — JsonResponse.
Наконец-то.
Ребят, а есть ли хорошая/улучшенная поддержка нереляционных БД, вроде MongoDB? Чтобы админка работала сразу и без дополнительных установок плагинов
Пример с кверисетами странный — я обычно то же самое дело в кастомном менеджере, унаследованном от штатного.
Печально, что сам South конфликтует с 1.7
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Что нового нас ожидает в Django 1.7