Как расширить модели событий / вхождений в django-планировщике - PullRequest
0 голосов
/ 03 июля 2019

Я хотел бы дополнить события / события в django-планировщике тремя вещами:

  • Расположение
  • Приглашенные
  • RSVPs

Что касается Location, то моей первоначальной мыслью было создание подкласса Event и добавление Location в качестве внешнего ключа к классу Location, но я предполагаю, что каждое сохраненное вхождение не будет включать в себя Location, поэтому, если расположение изменяется для одного вхождения, я Некуда будет хранить эту информацию.

В этой ситуации рекомендуется вместо этого создавать EventRelation? Смогу ли я тогда указать другое местоположение для одного вхождения в серии? Решение EventRelation мне кажется неопрятным, я бы предпочел держать модели в классах для ясности и простоты.

Я думаю, что Приглашенные - это та же проблема, так что, вероятно, мне следует использовать подобное решение?

Для RSVP я намереваюсь создать класс RSVP с Вхождением в качестве внешнего ключа, и, насколько я могу судить, он должен работать без проблем, если я сохраняю вхождение перед его подключением к RSVP?

Я прочитал все документы, все проблемы с GitHub, различные потоки StackOverflow, тесты, источник модели и т. Д., Но до сих пор неясно, каков «правильный» способ сделать это.

Я нашел PR, который представляет абстрактные модели: https://github.com/llazzaro/django-scheduler/pull/389, который выглядит именно так, как я хочу, но я не хочу использовать код, который, казалось бы, был заброшен 18 месяцев назад, так как я не получу выгоду от будущие улучшения.

РЕДАКТИРОВАТЬ: Теперь я думаю, что еще один способ сделать это будет иметь только один объект, связанный с событием, используя EventRelation, так что я бы иметь объект "EventDetails", связанный с событием через EventRelation, затем включите FK в Location, Guest и т. д. из этого объекта.

Затем я должен иметь возможность подклассифицировать свой объект EventDetails с различными видами событий и также прикреплять их. Я попробую и посмотрю, сработает ли это!

...