P. 1
I Campi Del Model in Django Parte 2

I Campi Del Model in Django Parte 2

|Views: 31|Likes:
Published by agliottone
http://www.darioagliottone.it/django-guida/
Guida ai tipi di campo di un modello in Django. I fields type del model, le caratteristiche. Documentazione e Reference ufficiale tradotta
http://www.darioagliottone.it/django-guida/
Guida ai tipi di campo di un modello in Django. I fields type del model, le caratteristiche. Documentazione e Reference ufficiale tradotta

More info:

Published by: agliottone on May 23, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/23/2012

pdf

text

original

I Campi del Model in Django Parte 2

http://www.darioagliottone.it/model-django-parte-2/

Il Model in Django - Parte 2 - i Campi
Campi
La parte più importante del Model (e l’unica indispensabile) sono i campi della tabella. Questi sono definiti dagli attributi del Modello. Esempio: 1 2 3 4 5 6 7 8 9 10 class  Musicisti(models.Model): nome  =  models.CharField(max_length=50) cognome  =  models.CharField(max_length=50) strumento  =  models.CharField(max_length=100)   class  Album(models.Model): artista  =  models.ForeignKey(Musician) nome  =  models.CharField(max_length=100) data_pubblicazione  =  models.DateField() voto  =  models.IntegerField()

Tipi di campo
Ogni campo dovrebbe essere la giusta istanza della classe Field. il type Fields è usato per stabilire : Il tipo della colonna (es. INTEGER , VARCHAR ). Il widget da utilizzare nell’ interfaccia di amministrazione di Django, (se la si vuole). I requisiti richiesti dai forms generati automaticamente dal admin di Django. Django ha già un set di tipi campo predefinite che vedremo più avanti, ma si possono scrivere facilmente i propri tipi di campo

Opzioni dei campo
Ogni campo ha un set di specifici argomenti. Per esempio, CharField (e le sue sottoclassi) richiedono l argomento max_length che specifica la dimensione del VARCHAR del campo. C’è anche una set di argomenti valido per tutti i campi. Tutti opzionali. Ecco un breve riassunto di quelli più utilizzati:

null
Se True, Django memorizzerà i valori vuoti come NULL nel database. Il valore predefinito è False.

blank
Se True, il campo può essere vuoto. Il valore predefinito è False. Attenzione, questo è diverso da NULL . NULL riguarda il database, mentre blank fa parte della validazione del form. Se un campo è blank= True, dal Backend di Django si può lasciare il valore del campo vuoto. Mentre se è blank = False , sarà obbligatorio inserire un valore.

choices
Un iterable (come una lista o una tupla) di 2-tuple da usare come scelta per il campo. Se viene settato questo argomento l’admin Django userà una select box invece del campo di testo standard così da limitare la scelta a quelle indicate. Una choices list può essere questa: 1 2 3 4 5 6 7 YEAR_IN_SCHOOL_CHOICES  =  ( (u'FR',  u'Freshman'), (u'SO',  u'Sophomore'), (u'JR',  u'Junior'), (u'SR',  u'Senior'), (u'GR',  u'Graduate'), )

Il primo elemento di ogni tupla è il valore che verrà memorizzato nel database, il secondo elemento sarà visualizzato dalla interfaccia di amministrazione, o in uno ModelChoiceField. Data un istanza del modello, con il metodo get_FOO_display si può vedere il valore mostrato delle scelte. Ad esempio: 1 2 3 4 5 6 7 8 from  django.db  import  models class  Person(models.Model): GENDER_CHOICES  =  ( (u'M',  u'Male'), (u'F',  u'Female'), ) name  =  models.CharField(max_length=60) gender  =  models.CharField(max_length=2,  choices=GENDER_CHOICES)

1 di 2

18/05/12 13.53

I Campi del Model in Django Parte 2

http://www.darioagliottone.it/model-django-parte-2/

9 10

  >>>  p  =  Person(name="Fred  Flintstone",  gender="M")  >>>  p.save()  >>>  p.gender  u'M'  >>>  p.get_gender_display()  u'Male'

default
è il valore predefinito per il campo. può essere un valore o un metodo. Se è un metodo sarà chiamato ogni volta che viene creato un nuovo oggetto.

help_text
Extra testo “help” sarà visualizzato sotto il campo nel form dell admin dell’oggetto. E’ utile per la documentazione, anche se l’oggetto non ha un form.

primary_key
Se True, questo campo sarà la chiave primaria per il modello. Se non si dichiara primary_key = True nei campi del modello, Django automaticamente aggiungerà un campo IntegerField come chiave primaria, quindi non c’è bisogno di impostare primary_key = True su uno qualsiasi dei campi a meno che non si desidera modificare il comportamento predefinito per la chiave primaria.

unique
Se True, questo campo deve essere univoco in tutta la tabella.

Per la reference ufficiale in inglese consultare Models. Per una lista più ampia consultare Common Fields

2 di 2

18/05/12 13.53

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->