Django localflavour
27 October 2008
Comments
Moduł 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
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)
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).
RkBlog
Comment article