Je suis nouveau à Django, déplacé de PHP avec Propel ORM moteur. Alors voici ce que je fais actuellement dans Django. Mon site a plusieurs modèlesModèle "Comportements" dans Django
- Livre,
- Editeur,
- Commentaire,
- article et ainsi de suite (ce n'est pas le point)
Chacun d'eux peut peut être aimé ou détesté par un utilisateur (une seule fois) en changeant la note du modèle par +1 ou -1.
En termes de PHP je créerais un comportement, par ex. "Rateable" qui ajouterait des champs et des méthodes au modèle original et à la classe de requête (comme get_rating()
, order_by_rating()
, etc) et créer une table séparée pour chaque modèle, par ex. book_rating_history
qui contiendrait toutes les évaluations pour chaque objet, afin de déterminer si l'utilisateur peut ou ne peut pas changer la note (ou afficher toutes les notes de l'objet, si nécessaire). Donc tout ce que je devrais faire est de spécifier le comportement "Rateable" dans la déclaration du modèle, et c'est tout. Tout le reste est fait automatiquement.
La question est - comment résoudre ceci dans Django? Comment modéliser correctement? Quelles techniques utilisez-vous dans des cas similaires?
fonction Bonus: l'utilisateur peut changer leur note à une date ultérieure. –