Garść nowości.

Trochę informacji na temat co się dzieje w świecie Django.

Dodatkowe opcje dla funkcji 'update' w nowym ORM-ie

Sebastian Noack napisał rozszerzenie funkcjonalności funkcji update. Dotychczas mogliśmy podać tam tylko stałe wartości (np. foo=42). Z jego rozszerzeniem możemy podać całe wyrażenie zmieniające wartość. Przykładowo: foo = aktualna_wartość + 1
Więcej informacji na: groups.google.com code.djangoproject.com/ticket/7210
Przykłady:

from django.db.models.sql.expressions import *

qset = model.objects.all()

# Equivalent to qset.update(foo=42)
qset.update(foo=LiteralExpr(42))

# Increment column 'foo' by one.
qset.update(foo=CurrentExpr() + LiteralExpr(1))

# Swap the value of the column 'foo' and 'bar'.
qset.update(foo=ColumnExpr('bar'), bar=ColumnExpr('foo')) 

Być może zostanie to wrzucone do głównego drzewa Django

Błąd bezpieczeństwa w Django

Poprawiono błąd typu XSS, który był w aplikacji admin. Zalecana jest aktualizacja do nowszych wersji. Więcej informacji na: www.djangoproject.com/weblog/2008/may/14/security/

Byteflow Blog Engine

Duży silnik blogowy z pełną funkcjonalnościa z dostępnymi źródłami napisany w Django: http://byteflow.su/


Komentarze do notki “Garść nowości.”

  1. Eluś 

    Przykład z pierwszej części wpisu stał się trochę nieaktualny, wraz z nową wersją patcha obiekty *Expression() zostały zastąpione obiektem F(). To, czy propozycja zostanie zaakceptowana też nie jest pewne (na razie brak jakichkolwiek decyzji, bo głównie brakuje testów i dokumentacji). Mi się osobiście ta propozycja bardzo podoba :) Tym bardziej, że - z tego co zrozumiałem - Sebastian Noack planuje oprzeć na tym swój własny projekt, który ma - podobnie jak mptt - umożliwiać wygodne przechowywanie (i wyciąganie) struktur drzewiastych w bazie. Dodanie obsługi wyrażeń do update pozwoliłoby wyeliminować potrzebę pisania czystych zapytań SQL. Poza tym fajnie byłoby gdyby projekt wykorzystywał nowe możliwości qs-rf, takie jak dziedziczenie modelów.
    ORM django poszedł ostatnio tyle do przodu, że można sobie wyobrazić sytuację, że trzymanie struktur drzewiastych w bazie będzie się sprowadzać jedynie do dziedziczenia modelu z jakieś klasy abstrakcyjnej, np. Tree. Jakby do tego dołożyć jeszcze fajne API (ala DOM czy wzorowane na ElementTree) z łańcuchowością na wzór jQuery (opisaną jakiś czas temu przez Simona Willisona) to zniknęłaby potrzeba sztucznego spłaszczania struktur modeli aplikacji webowych, które w rzeczywistości mają strukturę drzewiastą (jak komentarze czy kategorie).

    Byteflow to ciekawy projekt z masą ficzerów. Fajnie jakby powstało coś podobnego, ale bardziej uporządkowanego, z obszerniejszą dokumentacją. No i fajnie gdyby było multi-user (to by jednak oznaczało rezygnację z wykorzystania automatycznego panelu admina i w konsekwencji więcej roboty ;))

Zostaw odpowiedź