在Django表单提交上触发模式

时间:2018-11-28 11:14:19

标签: django bootstrap-modal

我有一系列的Django表单和表单集,这些表单和表单集通过一系列步骤连接在一起。提交最终表格步骤后,将开始执行芹菜任务,以根据提供的所有信息创建实体。当前的工作方式是提交最终表单(任务开始),然后重定向到页面,该页面使用户知道正在创建实体,然后在完成后重定向。但是,我现在想让此加载页面在前面的页面上显示为模式,而不是在全新的页面上显示。

我以前几乎只在Django中这样做过。

当我提交最终表单时,form_valid看起来像这样(我正在使用django-extra-views来制作表单集,因此它与正常情况有所不同):

def forms_valid(self, form, inlines):
    self.object = form.save()

    models.ActivityBaseNext.objects.create(
        activity_base=self.activity_base,
        order=self.activity_base.get_next_next_step_order(),
        activity_configure=self.object,
    )

    for formset in inlines:
        formset.save()

    transaction.on_commit(
        tasks.activity_configure.s(
            id=self.object.pk,
        ).delay
    )

    return HttpResponseRedirect(self.object.get_current_next_url())

导致重定向到加载页面,如下所示:

class ActivityConfigureStatus(LoginRequiredMixin, DetailView):
    model = models.Activity
    template_name = 'alert.html'

    title = 'Create Activity'

    display_text = 'Importing activity data'

    refresh_secs = 1

    def get(self, request, *args, **kwargs):
        self.object = get_object_or_404(models.Activity, pk=self.kwargs['pk'])

        object_url = self.object.get_current_next_url()

        if object_url == reverse('activities:activity_configure_status', kwargs={'pk': self.object.pk}):
            context = self.get_context_data(object=self.object)
            return self.render_to_response(context)
        else:
            return HttpResponseRedirect(object_url)

我正在尝试将ActivityConfigureStatus视图转换为出现在前一个视图中的模式。理想情况下,我希望更改代码少一点,所以我当前要执行的操作是在按下“提交”按钮时用相关数据填充模态。

我将提交按钮写为:

<button type="button" class="btn btn-primary float-right" data-toggle="modal" data-target="#configureModal">Submit</button>

但是我在如何用ActivityConfigureStatus视图填充模态方面感到困惑。

有人可以帮助我更新我的代码,以便出现模态内容。

任何帮助将不胜感激。

感谢您的时间。

0 个答案:

没有答案