Outils pour utilisateurs

Outils du site


django:models

Les modèles avec Django

Syntaxe

class NomClasse(models.Model):
    variable = models.Type(options)

exemple

issu de la documentation officielle

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

Visualiser le code SQL d'une application

python manage.py sql monApplication

Valider les modèles d'un projet

python manage.py validate

Afficher les directives de suppression de tables

permet de connaitre les ordres DROP TABLE appliqué par un modèle

python manage.py sqlclear polls

Combinaison de commandes SQL

Combine les commandes sql, sqlcustom et sqlindexes

python manage.py sqlall polls 

Obtenir une représentation lisible d'un modèle

Ajouter une méthode unicode au modèle

class NomClasse(models.Model):
    variable = models.Type(options)
    //...
    def __unicode__(self):
        return self.variable

exemple

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    //...
    def __unicode__(self):
        return self.question

Personnaliser l'affichage d'un modèle dans l'interface d'admin

Par défaut une méthode utilisée dans l'interface d'administration utilise le nom de la méthode. il est possible de personnaliser cet affichage. Soit une méthode

def uneMethodeQuiRenvoieUnBooleen(self):
    return resultatCalculBooleen

Il suffit d'ajouter quelques lignes dans la classe de la méthode

uneMethodeQuiRenvoieUnBooleen.boolean = True // Affichage d'un picto au lieu de True/False
uneMethodeQuiRenvoieUnBooleen.short_description = 'Ma belle description courte'

Affichage d'un intitulé de champ personnalisé

L'interface d'administration s'appuie sur le verbose name d'un field.

filter vs get

filter renvoie un objet de type QuerySet, get renvoie un objet tout court. Pour accéder aux attributs d'un objet, get est souvent la bonne manière

p = Class.objects.get(FILTRE_A_APPLIQUER)
p.attribut
django/models.txt · Dernière modification: 2016/10/17 13:56 (modification externe)