| Django http://www.python.rk.edu.pl/ Serwis poświęcony językowi programistycznemu o nazwie Python, w tym także frameworkowi Django i PyQt4. pl | Django http://www.python.rk.edu.pl/site_media/layout/tux.png http://www.python.rk.edu.pl/ 132 124 http://www.python.rk.edu.pl/w/p/django-102/ http://www.python.rk.edu.pl/w/p/django-102/ <![CDATA[Django 1.0.2]]> Django - 1.0.2, spowodowaną pominięciem kilku katalogów przy budowaniu pakietów Django 1.0.1.]]> 2008-11-19 09:13:16.456259 http://www.python.rk.edu.pl/w/p/django-101-wydane/ http://www.python.rk.edu.pl/w/p/django-101-wydane/ <![CDATA[Django 1.0.1 wydane]]> stronie projektu znajdziemy informację o wydaniu Django 1.0.1. Jest to wydanie zawierające wyłącznie poprawki i jest w pełni zgodne z Django 1.0. Wprowadzone zmiany to m.in:
  • Poprawki w django.contrib.comments (obsługa i18n w szablonach, poprawki RSS i XHTML)
  • Poprawki w obsłudze bazy Oracle
  • Poprawki w bibliotece formularzy
  • Aktualizacja tłumaczeń
  • Aktualizacja dokumentacji
]]>
2008-11-17 10:50:18.820158
http://www.python.rk.edu.pl/w/p/ide-webdevelopera-przemyslenia/ http://www.python.rk.edu.pl/w/p/ide-webdevelopera-przemyslenia/ <![CDATA[IDE webdevelopera - przemyślenia]]> eric4). Podstawa to edytor Kate:
  • karty/lista otwartych plików
  • dostęp do terminala z menu (menu dolne w Kate) - serwer deweloperski, odpalanie skryptów
  • duże i czyste okno z otwartym plikiem

Czego nie ma to zarządzanie projektami. Nie trzeba tu wielkiej filozofii - wystarczy coś jak Kate Project Manager - wybieram katalogi, które są "projektami" i mogę łatwo nawigować po ich zawartości. Dodatkowo na wzór rozwiązań z Komodo - poręczne jest tworzenie "skryptów" w każdym z projektów (np. gotowiec na odpalenie serwera, przetworzenie danych itp.). Co do integracji z systemami kontroli wersji to do prostych zadań konsola starczy, choć warto mieć pod ręką odpowiednie GUI (np. do SVN). Proste, czyste i funkcjonalne.

Patrząc na to z innej strony "ciekawe" IDE mogłoby powstać, gdyby Konqueror w kartach umiałby bezproblemowo otwierać karty konsoli, czy też edytora tekstowego (~Kate). Dodać opcję "dokowania" wybranych kart do dolnego menu i aplikacja kształtuje się całkiem przyjemnie.

]]>
2008-10-28 15:14:55.316581
http://www.python.rk.edu.pl/w/p/django-localflavour/ http://www.python.rk.edu.pl/w/p/django-localflavour/ <![CDATA[Django localflavour]]> django.contrib.localflavor.pl.forms zawiera kilka pól dla Forms ułatwiających tworzenie pól walidujących specyficzne dla Polski dane, np. NIP poprzez PLNIPField. Wystarczy zaimportować i wykorzystać... co skończyło się u mnie wyjątkiem klasy PLNIPField:
TypeError: __init__() got multiple values for keyword argument 'max_length'
W przypadku formularza typu:
class CompanyForm(forms.ModelForm):
	nip = PLNIPField("NIP")
	class Meta:
		model = Customer
Żeby to działało musiałem zmienić:
def __init__(self, *args, **kwargs):
        super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{2}-\d{2}-\d{3}-\d{3}$',
            max_length=None, min_length=None, *args, **kwargs)
na:
def __init__(self, *args, **kwargs):
        super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{2}-\d{2}-\d{3}-\d{3}$')

A że aplikacja miała dopuszczać NIPy 3-3-2-2 to całą klasę skopiowałem do projektu i odpowiednio dopasowałem :)

PS. jak dla mnie nowa dokumentacja Django jest za bardzo rozstrzelona i ciężko znaleźć konkretną informację, której się szuka (i wie czego się szuka).

]]>
2008-10-27 11:35:02.287077
http://www.python.rk.edu.pl/w/p/djangopl-nareszcie-wystartowalo/ http://www.python.rk.edu.pl/w/p/djangopl-nareszcie-wystartowalo/ <![CDATA[Django.pl (nareszcie) wystartowało]]> django.pl (czyli Django napisane w Perlu?) - polski serwis poświęcony kochanemu frameworkowi Django. Obecnie znajdziemy tam m.in. ćwiczenia wprowadzające, oraz inne porady. Serwis dopiero co powstaje i jest zdecydowanie za mało zielony ;)]]> 2008-10-26 14:43:40.665470 http://www.python.rk.edu.pl/w/p/resetowanie-zapomnianego-hasla-w-django-10/ http://www.python.rk.edu.pl/w/p/resetowanie-zapomnianego-hasla-w-django-10/ <![CDATA[Resetowanie zapomnianego hasła w Django 1.0]]>
import django.contrib.auth.views
....
(r'^password_reset/$', 'django.contrib.auth.views.password_reset'),
(r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done'),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),
Szablony znajdują się w django/contrib/admin/templates/registration i nadają się do użytku, lecz są w stylu panelu admina. Można podać ścieżki do własnych:
(r'^password_reset/$', 'django.contrib.auth.views.password_reset', {'template_name':'userpanel/password_reset_form.html', 'email_template_name':'userpanel/password_reset_email.html'}),
(r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done', {'template_name':'userpanel/password_reset_done.html'}),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name':'userpanel/password_reset_confirm.html'}),
(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete', {'template_name':'userpanel/password_reset_complete.html'}),
Problemy wystąpią, gdy mamy te widoki obudowane we własne widoki. Na starcie dostaniemy parę wyjątków NoReverseMatch: Reverse for 'yourapp.django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments.... Do dwóch widoków i szablonu należy dodać post_reset_redirect zawierający URL do następnego widoku:
  • password_reset - URL dla password_reset_done
  • password_reset_confirm - URL dla password_reset_complete
  • password_reset_email.html - W tagu URL trzeba podać jakoś link do password_reset_confirm:
    {% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %}
    
Przykład:
def password_reset(request):
	"""
	django.contrib.auth.views.password_reset view (forgotten password)
	"""
	if not request.user.is_authenticated():
		return django.contrib.auth.views.password_reset(request,
                          template_name='userpanel/password_reset_form.html',
                          email_template_name= 'userpanel/password_reset_email.html',
                          post_reset_redirect='/user/password_reset/done/')
	else:
		return HttpResponseRedirect("/user/")
Nazwa domeny w treści emaila brana jest z aplikacji Sites (jak nie ma to pewnie bierze domenę strony) i jeżeli coś w Sites zmienimy to musimy zrestartować serwer by w mailach widoczna była ta zmiana.]]>
2008-09-26 10:48:23.204504
http://www.python.rk.edu.pl/w/p/django-ide/ http://www.python.rk.edu.pl/w/p/django-ide/ <![CDATA[Django IDE?]]> darmowy hosting obrazków darmowy hosting obrazków darmowy hosting obrazków Ale ogólnie chcę zrobić żeby zakładki typu "projekt", "konsola" nie były kartami, a "wysuwały" się od dołu jak w Kate czy Kdevelop. Interfejs na zrzutach jest na razie dużym uproszczeniem, ale w przybliżeniu o coś takiego chodzi :) Skodowane byłoby to w PyQt4. Pomysły, komentarze mile widziane. ]]> 2008-09-17 19:30:21.949498 http://www.python.rk.edu.pl/w/p/czy-wiesz-co-zawiera-twoj-framework/ http://www.python.rk.edu.pl/w/p/czy-wiesz-co-zawiera-twoj-framework/ <![CDATA[Czy wiesz co zawiera twój framework?]]> django]]> 2008-09-16 21:06:24.940126 http://www.python.rk.edu.pl/w/p/django-debug-toolbar/ http://www.python.rk.edu.pl/w/p/django-debug-toolbar/ <![CDATA[Django Debug Toolbar]]> 2008-09-10 11:11:32.075099 http://www.python.rk.edu.pl/w/p/wprowadzenie-do-django-10-czesc-2/ http://www.python.rk.edu.pl/w/p/wprowadzenie-do-django-10-czesc-2/ <![CDATA[Wprowadzenie do Django 1.0 część 2]]> 2008-09-08 22:39:46.831356