Monday, March 12, 2007

Detalii Django

Un amănunt care nu e foarte bine documentat în Django: cum să adaug validări custom pentru situl de admin generat automat:

Folosesc pentru *Field argumentul validator_list din constructor. Există validatori predefiniţi în django.core.validators, precum şi documentaţie - se referă la formele vechi, dar nu cred că va dispărea acest mic detaliu aşa uşor.

Am aflat că se poate folosi validator_list aici dintr-o discuţie google groups.

Exemplu de utilizare:


from django.db import models
from django.core.validators import isUpperCase

# Create your models here.

# adresa hotelului sau amploiatului
class Address(models.Model):
country = models.CharField(maxlength = 150,
validator_list = [isUpperCase])
town = models.CharField(maxlength = 150)
street = models.CharField(maxlength = 150)
number = models.CharField(maxlength = 50)
def __str__(self):
return "%s, %s (%s, %s)" % \
(self.street, self.number, self.town, self.country)
class Meta:
verbose_name_plural = "Adresses"
class Admin:
pass

No comments: