La référence d`instance de modèle comporte une liste complète des méthodes automatiquement données à chaque modèle. Vous pouvez substituer la plupart de ces-Voir la substitution des méthodes de modèle prédéfinies, ci-dessous-mais il ya un couple que vous aurez presque toujours envie de définir: il est suggéré, mais pas nécessaire, que le nom d`un ManyToManyField (garnitures dans l`exemple ci-dessus) être un pluriel décrivant l`ensemble d`objets de modèle connexes. Le modèle Student aura trois champs: nom, âge et home_group. Le modèle CommonInfo ne peut pas être utilisé comme modèle Django normal, car il s`agit d`une classe de base abstraite. Il ne génère pas de table de base de données ou n`a pas de gestionnaire, et ne peut pas être instancié ou enregistré directement. Nous récupérons d`abord la syntaxe préférée (l`énumération QRegExp::P atternSyntax est utilisée pour interpréter la signification du modèle donné), puis nous déterminons la sensibilité de la casse préférée. En fonction de ces préférences et du modèle de filtre actuel, nous avons défini la propriété filterRegExp du modèle proxy. La propriété filterRegExp contient l`expression régulière utilisée pour filtrer le contenu du modèle source. Notez que l`appel de la fonction setFilterRegExp () de QSortFilterProxyModel met également à jour le modèle. Une fois que vous avez défini vos modèles, vous devez indiquer à Django que vous allez utiliser ces modèles. Pour ce faire, modifiez votre fichier de paramètres et modifiez le paramètre INSTALLED_APPS pour ajouter le nom du module qui contient votre models.py. Dans cet exemple, nous avons choisi de créer et de définir le modèle source dans la fonction main () (que nous allons revenir à plus tard).

Ainsi, lors de la construction de la fenêtre principale de l`application, nous supposons qu`un modèle source existe déjà et commencer par créer une instance de notre modèle de proxy personnalisé: cette restriction s`applique uniquement aux attributs qui sont des instances Field. Les attributs python normaux peuvent être remplacés si vous le souhaitez. Il s`applique également uniquement au nom de l`attribut comme Python le voit: Si vous spécifiez manuellement le nom de colonne de base de données, vous pouvez avoir le même nom de colonne apparaissant dans un enfant et un modèle ancêtre pour l`héritage multi-table (ils sont des colonnes dans deux différents tables de base de données). Si vous avez besoin d`accéder aux informations d`un membre, vous pouvez le faire en interrogeant directement le modèle d`appartenance: comme mentionné, Django créera automatiquement un OneToOneField reliant votre classe enfant à tous les modèles parents non abstraits. Si vous souhaitez contrôler le nom de l`attribut qui se rattacher au parent, vous pouvez créer votre propre OneToOneField et définir parent_link = true pour indiquer que votre champ est le lien vers la classe parente.