The Essence of Programming

Help: Django potwierdzenie maila w formularzach

31 maja 2011
Borykam się z pewnym problemem i nie wiem jak go rozwiązać :-/ Mam model i formularz w Django:
from django import forms
from django.forms import ModelForm
from django.db import models

class Appointment(models.Model):
    first_name = models.CharField(max_length = 30, verbose_name = u'Imię')
    last_name = models.CharField(max_length = 60, verbose_name = u'Nazwisko')
    phone = models.CharField(max_length = 11, verbose_name = u'Telefon', blank = True)
    email = models.EmailField(verbose_name = u'E-mail', blank = True)

    class Meta:
        verbose_name

class AppointmentForm(forms.ModelForm):
    agree_personal_data = forms.BooleanField(required=True)         

    class Meta:
        model = Appointment = u'Wizyta'
        verbose_name_plural = u'Wizyty'
I pytanie jak mogę dodać żeby było poprawne wpisanie tylko jednego z rodzajów (telefon lub email) i żeby jeśli ktoś zdecyduje się na wpisanie maila wymagane było jego potwierdzenie (czyli drugi email wpisany w innym polu i porównana zawartość obu pól) ? Może szanowna brać Joggerowa mi pomoże? :)

Kocham kodowanie ...

25 marca 2009

Na przyszłość:

Usunięcie parametru ?charset=utf8 z sqlalchemy.url może czasami oszczędzić mnóstwo roboty.

Także jeśli wyświetlają Ci się krzaczki przy pobieraniu danych z bazy spróbuj tego rozwiązania :P

PyCon PL 2008

16 listopada 2008

Niecały miesiąc temu miałem okazję być na konferencji dot. programowania w języku Python - PyConPL(będącą polskim odpowiednikiem jej zagranicznej wersji). Konferencja była udana, choć nie obyło się bez drobnych wpadek :)

Większość prelekcji dotyczyła tworzenia aplikacji webowych w oparciu o frameworki Pylons, Django, Grok, Zope.

Jedna z prezentacji dotyczyła kompatybilności pomiędzy wersją 2.5 a 3.0 Pythona, oraz płynnego przejścia pomiędzy nimi w swoich aplikacjach z uwzględnieniem ciekawych sztuczek i tricków.

Ciekawie przedstawiona była jeszcze prelekcja dot. fuzzingu. Jako, że nigdy nie słyszałem o tym terminie, a zajmuję się aplikacjami webowymi - warto próbować również w ten sposób testować swoje zabezpieczenia.

Ku mojemu zaskoczeniu prelekcja dot. fizyki była bardzo interesująca i zachęciła mnie do prób i eksperymentowania z fizyką przy użyciu komputera :)

Nie mogę zapomnieć o fantastycznej atmosferze oraz sympatycznych uczestnikach konferencji, z którymi można było merytorycznie porozmawiać przy browarku w hotelowym barku na tematy pythonowe i nie tylko :)

Podsumowując - organizatorom gratuluję organizacji i stworzenia wyśmienitej atmosfery. Liczę na to, że w przyszłym roku będzie podobnie, a nawet jeszcze lepiej :)

PS. Ten wpis miał być opublikowany wcześniej, ale z braku czasu dodaje go teraz :)

PyCon PL 2008

Bluetooth screen locker - czyli blokujemy ekran gdy nie jesteśmy w pobliżu komputera

13 listopada 2008

Wpadłem ostatnio na pewien pomysł - mianowicie często odchodzę od komputera a chciałbym, żeby moje dane zawsze były bezpieczne. Postanowiłem więc jakoś rozwiązać ten problem i stworzyłem szybko malutki skrypcik w Pythonie który sprawdza czy moja komórka jest w zasięgu działania bluetootha w komputerze.

Jedyne co trzeba zrobić to zainstalować lightblue. Program co kilka sekund sprawdza czy istnieje urządzenie o podanym MAC adresie, w przypadku jego braku włącza wygaszacz ekranu.

Zamiast XX:XX:XX:XX:XX:XX wpisujemy MAC naszej komórki.

import os, lightblue, time
screen_command = 'gnome-screensaver-command -a -l' #dla ubuntu
#odkomentuj dla MAC OS X screen_command = '/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine'
lock = 0
while 1==1:
  try:
      lightblue.finddevicename('XX:XX:XX:XX:XX:XX', usecache=False)
  except:
      if lock == 0:
          os.system(screen_command)
          lock = 1
  else:
      lock = 0
  time.sleep(2)

Kilka informacji o autorze

Programista, blogger, uwielbia białą czekoladę ;)