2014-06-20 14 views
5

Korzystanie z https://github.com/llazzaro/django-scheduler Chciałbym używać własnych modeli w kalendarzu, mają one również datę rozpoczęcia i zakończenia.Korzystanie z aplikacji harmonogramu Django z własnymi modelami

Myślę, że istnieje wiele sposobów, aby rozwiązać ten problem:

  1. Hack aktualnym harmonogramem aplikację, aby współdziałać z moich modeli.
  2. Tworzenie domyślnych modeli zdarzeń podczas tworzenia modeli przy użyciu przesłonięcia save().
  3. Użyj funkcji "relacje zdarzeń do obiektów ogólnych" w aplikacji do planowania django.
  4. Rozszerz domyślne modele zdarzeń, aby spełnić własne wymagania.

Chciałbym skorzystać z trzeciej opcji, ale nie wiedziałbym, jak jej używać, ponieważ kalendarz jest powiązany z jednym obiektem.

Jestem nowy zarówno w Pythonie, jak i Django, więc czy ktoś mógłby mi doradzić?

+0

Tak więc @llazzaro, użyłem trzeciej opcji i podklasowałem klasę Event. Ale zaczyna się o określonej godzinie pierwszego dnia, powiedzmy o 10 rano. Jest to hsown jako wydarzenie "całodniowy" dla dni pośrednich i kończy się o godzinie 17:00 ostatniego dnia. Chciałem zrozumieć, czy mogę uzyskać jednorazowe wydarzenie w ciągu kilku dni, które rozpoczynają się w tym samym czasie i kończą o tej samej porze każdego dnia. – Afrowave

Odpowiedz

2

Aby uzyskać opcję 3, Twój obiekt ogólny miałby klucz obcy powiązany z obiektem Event z tej aplikacji kalendarza.

+0

Więc w zasadzie opcje 3 i 4 są takie same, huh. Nie generuje zupełnie nowego stołu? – Sem

+0

Z punktu widzenia stołu opcja 4 oznaczałaby zmianę tabeli zdarzeń tak, aby wyglądała tak, jak chcesz. Opcja 3 wymaga utworzenia nowej tabeli z twoim ogólnym obiektem, jak również tabeli z łączami między dwiema tabelami. Ale to, co powinieneś zrobić, to opcja 3, ponieważ w przeciwnym razie musisz przejąć konserwację itp. Tej aplikacji kalendarza. – cchristelis

+0

Chyba masz rację. Zrobiłem podklasę Event i działa bezbłędnie. Nadal trzeba stworzyć sposób na powiązanie zdarzeń z konkretną stroną, ale to kolejna sprawa. Dzięki za pomoc! – Sem

0

Django Harmonogram ma dość ukryte ustawienie (nawet nie odnotowano w oficjalnych Docs), która daje rade:

SCHEDULER_BASE_CLASSES

SCHEDULER_BASE_CLASSES = { 
    'Event': ['my_app.models.EventAbstract1', 'my_app.models.EventAbstract2'] 
    'Calendar': [my_app.models.CalendarAbstract'] 
} 

Tak, można zdefiniować własne abstrakcyjny model i markę Kalendarz przedłużyć to.

EDIT

Jak @Jheasly powiedział w swoim komentarzu, ta funkcja jest obecnie udokumentowane.

+1

Wygląda na to, że 'SCHEDULER_BASE_CLASSES' był [dodany do dokumentów] (http://django-scheduler.readthedocs.io/en/latest/settings.html#scheduler-base-classes) w tym dokumencie [25 czerwca 2017 r., Commit] (https://github.com/llazzaro/django-scheduler/commit/4f4ea9ad8d6c8301f181e0180a56b8fa953b6bce). – Jheasly

+0

Tak, otworzyłem problem tuż po opublikowaniu tej odpowiedzi – Don

+0

Ah. Wuj, to ma sens! :) – Jheasly

Powiązane problemy