Il y a quelques jours, un gars m'a expliqué que sur Ruby sur des rails les requêtes sont effectuées sur des modèles. Parce qu'il est déjà enregistré à vos données avant de être demandée sur les vues et la requête. P>
Au fait, j'ai appris et je travaillais jusqu'à présent, je définit la requête sur Views.py et en passant, à travers une variable de contexte. J'ai donc commencé à lire sur Model.Manager et je n'ai toujours pas trouvé de réponse à laquelle est le meilleur: p>
4 Réponses :
Chaque modèle est associé à un gestionnaire (par défaut est lorsque vous devez effectuer des questions sur le modèle dont vous avez besoin d'un manager pour cela. . Dans l'exemple ci-dessus, l'utilisateur effectue une requête sur objets code>)
Objets Code> Manger of User Model. P>
3-QUERIES FAIT SUR LES MODÈLES.MANDERS DEMANAGER POUR CHAQUE modèle CODE> - CORRECT Interprétation P> P>
Merci monsieur, est-ce parce que la requête sera déjà créée et avec le code le plus spécifique possible?
Cliquez ici pour la documentation
Réf. P>
Par défaut, Django ajoute un gestionnaire avec les objets de noms à chaque Django classe modèle.
Si vous avez une logique commerciale spécifique, vous pouvez utiliser des gestionnaires pour remplacer les méthodes de modèle intégrées telles que Save () et Supprimer () pour ajouter une logique commerciale au comportement de la base de données par défaut ou vous pouvez spécifiquement concevoir une certaine logique de requête. P> nom du fichier ----> modèles.py p> créer un fichier gestionnaires de fichier.py dans votre application
Nom de fichier ----> Managers.py P> import ModelName
obj = ModelName.get_queryset(id)
obj.title
Je n'ai pas compris la logique sur le gestionnaire, je vais lire sur Doc et quelques tutoriels sur ModelManager. Mais devrais-je créer les gestionnaires sur des managers.py utiliser ensuite pour attribuer à une variable sur des modèles.py comme des objets et utilisez ensuite sur Vues attribuant comme: modelname.Objects code>?
Ouais. Si vous avez une logique commerciale spécifique, vous pouvez créer des mangères ou créer des méthodes statiques à l'intérieur du modèle.py où vous pourrez identifier la méthode statique en appelant le modèle Name.Object.static_Method (ID) .. Méthode statique .. sera héritée par Onje.
C'est une question de séparation des préoccupations: p>
Qu'en est-il des opérations comme un champ finis_day = modèles.dateTimefield () code> et je souhaite récupérer l'heure jusqu'à la finisth_day de (DateTime.now ()).
time_left = f (modèle.finish_day - DateTime.now ()) code> devrait-il être fait sur des vues ou des modèles?
Selon les idiomes Django, vous souhaitez ajouter des conseils pouvant être utiles: p>
get_by_name_and_domain code> au gestionnaire de modèle utilisateur. En outre, vous pouvez accéder à votre modèle par l'attribut code> modèle code> dans le gestionnaire. LI>
- Les modèles font partie du modèle MTV (modèle de vue de modèle) sur Django et l'objectif principal du «modèle» lui-même est de décrire l'objet dB-objet mais non connecté logique commerciale. Alors, mettez vos requêtes personnalisées à des vues et rappelez-vous de principe sec. Li>
ul>
Je n'ai pas eu raison, alors je devrais créer les requêtes sur les managers de modèles dans les modèles et si je voulais faire une certaine opération avec cette requête, je devrais utiliser les points de vue? Ne pas faire les opérations sur les gestionnaires sur les modèles?