2014-06-20 21 views
5

Sử dụng https://github.com/llazzaro/django-scheduler Tôi muốn sử dụng các kiểu máy của riêng mình trong lịch, chúng cũng có ngày bắt đầu và ngày kết thúc.Sử dụng ứng dụng lập lịch biểu Django với các kiểu máy của riêng bạn

Tôi nghĩ rằng có nhiều cách để giải quyết vấn đề này:

  1. Hack ứng dụng lịch trình hiện tại để làm cho nó tương tác với mô hình của tôi.
  2. Tạo mô hình sự kiện mặc định khi tạo mô hình của tôi bằng cách sử dụng ghi đè save().
  3. Sử dụng tính năng "quan hệ sự kiện đối với đối tượng chung" của ứng dụng lập lịch django.
  4. Mở rộng mô hình sự kiện mặc định để đáp ứng các yêu cầu của riêng tôi.

Tôi muốn sử dụng tùy chọn thứ ba nhưng tôi sẽ không biết cách sử dụng tùy chọn này vì lịch được liên kết với một đối tượng duy nhất.

Tôi mới dùng cả Python và Django, vì vậy ai đó có thể cho tôi lời khuyên?

+0

Vì vậy, @llazzaro, tôi đã sử dụng tùy chọn thứ ba và phân lớp lớp Sự kiện. Nhưng nó bắt đầu vào một thời điểm cụ thể vào ngày đầu tiên, nói 10 giờ sáng. Nó được gọi là sự kiện "cả ngày" cho những ngày trung gian và kết thúc lúc 5 giờ chiều vào ngày cuối cùng. Tôi muốn hiểu liệu tôi có thể nhận được sự kiện một lần trong một số ngày bắt đầu cùng một lúc và kết thúc vào cùng một thời điểm mỗi ngày hay không. – Afrowave

Trả lời

2

Để đạt được tùy chọn 3, đối tượng chung của bạn sẽ có khóa ngoài liên kết với đối tượng Event từ ứng dụng lịch đó.

+0

Vì vậy, về cơ bản tùy chọn 3 và 4 giống nhau huh. Nó không tạo ra một bảng hoàn toàn mới? – Sem

+0

Từ tùy chọn xem điểm bảng 4 sẽ ngụ ý thay đổi bảng Sự kiện để trông giống như những gì bạn muốn. Tùy chọn 3 ngụ ý tạo một bảng mới với đối tượng chung của bạn cũng như một bảng có các liên kết giữa hai bảng. Nhưng ito những gì bạn nên làm là tùy chọn 3, vì nếu không bạn cần phải tiếp quản bảo trì, vv của ứng dụng lịch này. – cchristelis

+0

Tôi đoán bạn đã đúng. Tôi đã tạo một lớp con Sự kiện và nó hoạt động hoàn hảo. Vẫn cần phải tạo một cách để làm cho các sự kiện liên kết đến một trang cụ thể nhưng đó là một mối quan tâm khác. Cảm ơn đã giúp đỡ! – Sem

0

Django Scheduler có một khung cảnh khá ẩn (thậm chí không được báo cáo trong các tài liệu chính thức) có thể làm các trick:

SCHEDULER_BASE_CLASSES

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

Vì vậy, bạn có thể xác định mô hình trừu tượng của riêng bạn và làm cho Lịch mở rộng nó.

EDIT

Như @Jheasly nói trong comment của mình, tính năng này hiện đang ghi nhận.

+1

Có vẻ như 'SCHEDULER_BASE_CLASSES' đã được thêm vào tài liệu (http://django-scheduler.readthedocs.io/en/latest/settings.html#scheduler-base-classes) trong [ngày 25 tháng 6 năm 2017, cam kết] (https://github.com/llazzaro/django-scheduler/commit/4f4ea9ad8d6c8301f181e0180a56b8fa953b6bce). – Jheasly

+0

Có, tôi đã mở một vấn đề ngay sau khi đăng câu trả lời này – Don

+0

Ah. Wull, có ý nghĩa! :) – Jheasly

Các vấn đề liên quan