我有一系列的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
视图填充模态方面感到困惑。
有人可以帮助我更新我的代码,以便出现模态内容。
任何帮助将不胜感激。
感谢您的时间。