Je travaille sur une application de calendrier dans django et je souhaite prendre en charge des événements qui se répètent une quantité infinie de fois après une date de début donnée. Je vais stocker des "événements de bloc" où chaque bloc comprend des données sur un certain événement (titre, description ...) ainsi que le motif avec lequel il se répète et une "date d'expiration". De cette façon, je ne stocke qu'un seul enregistrement pour un groupe de peut-être des centaines d'instances répétées d'un événement. Si je veux faire une "exception", je peux diviser ce bloc d'événement autour de l'exception et avoir chaque bloc lié aux blocs précédents et futurs. Mon problème est que je veux être en mesure d'exécuter des requêtes pour récupérer tous les "événements logiques" dans une période donnée comme si un nouvel enregistrement d'événement était inséré pour chaque instance d'une répétition. Essentiellement, je veux révéler un modèle django pour chaque événement à mon application (et l'application d'administration de Django), mais stockez un modèle unique, différent, pour chaque groupe d'événements dans ma base de données. Est-ce possible, et si oui .. comment? Ou y a-t-il une meilleure approche pour répéter des événements?Répétition indéfinie d'événements dans le calendrier django
Répondre
Une approche possible consiste à avoir deux modèles différents. Vos événements sont comme vous les avez. Ensuite, ayez un modèle "timespan". Vous pouvez ensuite utiliser le début et la fin de la période pour saisir tous les événements pertinents qui se situent dans la plage. Si vous affichez un arrangement non flexible, le modèle Timespan peut être un "CalendarDay", puis un modèle "Calendar" peut contenir une semaine (ou un mois, ou peu importe) de CalendarDays et utiliser cette information pour obtenir le bon ensemble d'événements.
Jetez un oeil à django-schedule, qui a déjà mis en œuvre un système pour cela. Ils utilisent a Period class qui sait comment collecter des occurrences d'événements individuels dans un laps de temps donné, et ainsi ils peuvent supporter une récurrence infinie. Si vous voulez manifester de vrais objets de modèles individuels dans l'admin Django pour chaque occurrence d'un événement récurrent, c'est aussi possible, mais vous devrez renoncer à la récurrence infinie (vous ne pouvez pas générer un nombre infini) des objets modèles). J'ai implémenté ceci pour un projet: chaque objet Occurrence individuel avait une ForeignKey optionnelle à un modèle de récurrence, qui stockait les métadonnées sur la récurrence (c'est-à-dire "hebdomadaire le lundi à partir de cette date"). Dans la méthode save() de l'objet Recurrence, je voudrais supprimer ou créer l'une de ses Occurrences liées nécessaires pour correspondre à ses nouvelles données.
La première solution est une solution générale supérieure au problème, mais vous devrez peut-être faire plus d'interface utilisateur vous-même, car vous ne pouvez pas transformer chaque Occurrence en instance de modèle réelle.
- 1. Django, calendrier
- 2. Django - requêtes faites répétition/inefficaces
- 3. Django sélectionnez la date multiple du calendrier
- 4. SharePoint Changer le calendrier
- 5. KeyListener et le calendrier
- 6. Variable indéfinie en php
- 7. Exemple pour le calendrier complet dans jquery
- 8. comment gérer un événement sur un événement Django Calendrier
- 9. Erreur de variable indéfinie dans PHP
- 10. Stop LinearGradientBrush répétition
- 11. WPF Répétition Question (MVVM)
- 12. Calendrier dans SAS/AF
- 13. Calendrier dans Zend Framework
- 14. Erreur fatale: fonction indéfinie - pourquoi?
- 15. Répétition de fond maximale dans Google Chrome?
- 16. Répétition de l'en-tête dans un groupe
- 17. Erreur Wampserver: variable indéfinie mywampfp
- 18. Génériques et collections - méthode indéfinie pour le type
- 19. PyQt Répétition automatique des formulaires
- 20. Calendrier + Événements dans Drupal 5
- 21. Calculs du calendrier dans bash
- 22. Django - Répétition d'un champ de formulaire n fois sous une forme
- 23. Le calendrier Javascript ne fonctionne pas
- 24. Contrôle du calendrier pour le cacao tactile
- 25. C# Objet de calendrier sur le dessus
- 26. Changer le seuil de la clé de répétition C++
- 27. Date et heure Date d'entrée dans le calendrier Outlook automatiquement?
- 28. Problème pendant que j'essaie d'afficher les événements dans le calendrier?
- 29. PHP: PEAR Calendrier Grille Non rendu dans le navigateur
- 30. Comment afficher les événements dans le calendrier en utilisant Ruby?