Dodanie unikalnej kolumny do istniejącej tabeli w Django

Czasami zachodzi potrzeba dodania nowej, unikalnej kolumny do istniejącego już modelu w Django. Niestety jeśli w tabelce istnieją już wpisy, otrzymamy błąd. W takim przypadku, dodanie nowej kolumny należy podzielić na 3 kroki. Stworzenie kolumny bez indeksu unikalnego, wygenerowanie unikalnych wartości, dodanie indeksu. Możemy to zrobić używając standardowego mechanizmu migracji, który znajduje się w Django. Zacznijmy od przykładowego kodu:

W przykładzie do modelu Event dodajemy kolumnę key która zawiera unikalny ciąg znaków. W pierwszym kroku tworzymy nową kolumnę. W kroku 2 przekazujemy do mechanizmu funkcje Pythona. Jako parametry otrzyma ona obiekty za pomocą których będzie mogła wykonywać operacje na bazie danych. W przykładowej funkcji wyciągamy wszystkie wiersze które znajdują się w bazie. Przechodzimy pojedynczo przez każdy element, generujemy losowy ciąg znaków i zapisujemy zmiany w bazie. Można przyjąć dowolną strategię generowania unikalnej wartości, dla liczb może to być po prostu kolejny numer. Gdy już mamy unikalne wartości w każdym wierszu tabelki, możemy na nią nałożyć indeks unikalny (krok 3).

Zliczanie facebookowych like (lubię to) przy pomocy PHP

Facebook udostępnia bardzo prosty mechanizm pozwalający nam pobrać liczbę facebookowych “lajków” dla naszej strony. Przy użyciu PHP można to zrobić w kilku linijkach. Przykładowy kod:

Dzięki temu możemy wyświetlić na stronie ile osób przyznało like lub udostępniło naszą stronę. Na tej podstawie można też wykonać jakiś prosty system ocen lub głosowanie, zabezpieczone przed wielokrotnym oddawaniem głosów.