Django viewflow - создать-> pending-> publish-> edit-> pending-> publish - PullRequest
1 голос
/ 09 марта 2019

Я использую django viewflow для создания процесса публикации :

  • пользователь создает объект
  • он входит в процесс просмотра и имеет статус в ожидании (он не доступен для общественности)
  • , когда он рассматривается и утверждается, он публикуется и становится общедоступным.
  • если пользователь редактирует эту же сущность, он снова входит в процесс просмотра , но старые данные по-прежнему видны для публики

Часть для создания и публикации общедоступна, но часть с редактированием не так уж и велика, если я хочу, чтобы старые данные были все еще видимы для общественности. Я думал отменить сохранение объекта в pre_save и сохранить его только в модели процесса. Но мне не удалось заставить его работать. Как это можно сделать с помощью django viewflow? Есть мысли?

1 Ответ

1 голос
/ 11 марта 2019

Viewflow - это тонкий слой рабочего процесса, который извлекает логику потока из представлений.Логика представления, которая сохраняет различные данные, остается неизменной.

Чтобы написать пользовательское представление, вам просто нужно добавить FlowMixin.Его можно использовать как с generic.CreateView, так и с generic.UpdateView

Django CBV может показаться сложным, в этом случае вы можете использовать простое функциональное представление, просто пометив его декоратором @flow_view.Когда задача завершена, представление должно вызвать request.activation.done()

Вот несколько примеров пользовательских представлений, которые вы можете проверить для ссылки https://github.com/viewflow/cookbook/blob/master/custom_views/demo/bloodtest/views.py#L54

...