Django-fr

Forum

  • Accueil
  • » Django-fr
  • » [Débutant] Ou placer une méthode de controle de données?

#1 08-08-2011 09:42:59

LiTiL_DiViL
Membre
Inscription : 06-05-2011
Messages : 7

[Débutant] Ou placer une méthode de controle de données?

Bonjour,
Je découvre django et python et je m'amuse beaucoup, mais je souhaiterai faire les chose proprement pour pas avoir à recommencer. J'ai donc quelques questions :

Je suis en train de tester l'interface d'admin et j'ai donc crée des "admins action".  J'ai créé une fonction dans admin.py qui permet de pré remplir un certain nombre de champs voir de créer plusieurs enregistrements sur des tables . Mais je me demande s'il ne vaut mieux pas implémenter ce type de fonction dans la classe modèle ? ou ailleurs peut être ?

Même question pour le contrôles des données ? Est-ce que je dois implémenter des fonctions de conrôles à l'intérieur de mes classes models ?
Exemple :
j'ai deux tables en relation dont une avec un champs booleen, je souhaitera quand un enregistrement est le bool à faux il ne puisse plus être visible/utilisable par l'application. J'ai donc un contrôle de cohérence à faire à ce niveau la. Ou est-ce que je le positionne ? dans la classe modèle ? Ailleurs (fichier view j'ai pas encore trop creusé cette hypothèse)

Voila

Merci pour vos réponses j'espère ne pas avoir été trop confus.

Hors ligne

#2 08-08-2011 10:40:58

Vincent
Membre
Inscription : 08-08-2011
Messages : 20

Re : [Débutant] Ou placer une méthode de controle de données?

Bonjour!

Pour les admin actions, personnellement, quand je les utilisent ce ne sont que des "helpers" pour les utilisateurs pour faire des traitements par lots que je ne vais pas utiliser par après. A voir ce que d'autres en pense. Je n'en ai jamais ressenti le besoin.
Rien n'empêche que la fonction appelle une fonction de ton modèle et ne s'occupe que du message a afficher ou autre.

Tu peux faire des contrôles à différents endroits (models forms etc) selon ce que tu dois filtrer et dans quel contexte.

Le plus simple c'est de modifier la foreignkey de ton modèle en rajoutant en argument limit_choices_to ([url]https://docs.djangoproject.com/en/dev/ref/models/fields/#arguments[/url]), ça va déjà filtrer la queryset utilisé par l'admin dans les choix des objets selon ton boolean.

Pour les autres pages, tu filtre dans tes views avec objects.filter() et si tu as besoin de filtrer vraiment partout, tu redéfini rapidement le manager du modèle ([url]https://docs.djangoproject.com/en/1.3/topics/db/managers/[/url])

En espérant avoir aidé!

Dernière modification par Vincent (08-08-2011 15:59:04)

Hors ligne

#3 08-08-2011 21:28:13

LiTiL_DiViL
Membre
Inscription : 06-05-2011
Messages : 7

Re : [Débutant] Ou placer une méthode de controle de données?

Merci pour les infos et conseils.

Hors ligne

  • Accueil
  • » Django-fr
  • » [Débutant] Ou placer une méthode de controle de données?

Pied de page des forums