Django Viewflow - поток. Если с пользовательскими представлениями у меня не работает

У меня такой поток:

    review_request = (
        flow.View(
            ReviewRequest,
        ).Permission(
            auto_create=True
        ).Next(this.check_response)
    )


    check_response = flow.If(cond=lambda act: True
        ).Then(
            this.approved_access_request
        ).Else(
            this.refused_access_request
        )


    approved_access_request = flow.View(
        AccessApproved,
    ).Assign(
        this.review_request.owner
    ).Permission(
        auto_create=True
    ).Next(this.end)

    refused_access_request = flow.View(
        AccessRefused,
    ).Assign(
        this.review_request.owner
    ).Permission(
        auto_create=True
    ).Next(this.end)

И вид:

class ReviewRequest(FlowMixin, generic.UpdateView):
    template_name = 'web/review-access-request.html'
    model = AccessRequest

    form_class = ReviewAccessRequestForm

    def get_object(self):
        return self.activation.process

    def request_details(self):
        return self.activation.process.access_request

    def form_valid(self, form):
        form.save()
        self.activation_done()
        next_view_url = self.get_success_url()
        return redirect(next_view_url)

Проблема в том, что страницы для AccessApproved и AccessRefused не отображаются. Часть назначения работает (показана интерфейсом материала администратора), но представления не выполняются. Вместо этого есть пауза в несколько секунд, и браузер отправляется в папку «Входящие» администратора.


person Access Denied    schedule 08.01.2020    source источник


Ответы (1)


Задача просмотра не выполняется автоматически, а выбирается пользователем. Как правило, после потока. Если новые назначенные задачи доступны в папке «Входящие» пользователя.

Если вы нажмете кнопку «Сохранить и продолжить» в интерфейсе по умолчанию, ваше представление ReviewRequest может решить, что делать дальше, вызвав viewflow.flow.utils.get_next_task_url

person kmmbvnr    schedule 09.01.2020
comment
Спасибо за ответ. Я использую пользовательские представления. Есть ли способ автоматически отображать следующую страницу в потоке (стиль мастера), без перехода пользователя в папку «Входящие»? Я знаю, что могу сделать это из представления, используя get_next_task_url, но как насчет самого потока (поскольку у меня есть flow.If, решающий, какой следующий шаг)? - person Access Denied; 09.01.2020
comment
Перенаправление происходит не по потоку, а по вашему мнению в get_success_url - github.com/viewflow/viewflow/blob/master/viewflow/flow/views/ - person kmmbvnr; 10.01.2020