重写Django ViewFlow视图返回JSON:自定义模态UI遇调用异常
ViewFlow自定义UI模态框任务视图问题排查
我正在为ViewFlow实现自定义UI,目标是将各类任务以模态框形式展示。目前已完成初始启动视图的模态框展示及AJAX表单提交,但其他流程任务视图还未实现相同效果。我尝试重写AJAXDetailTaskView(DetailTaskView)来适配AJAX请求,但该视图似乎未被调用,现以启动详情视图为例排查问题(推测其他视图原理一致):
flows.py
class AssetFlow(Flow): process_class = models.AssetProccess task_class = models.AssetTask lock_impl = select_for_update_lock start = ( flow.Start( views.StartView) .Permission(auto_create=True) .Next(this.co_approval) ) co_approval = ( flow.View( views.AssetView ) .Next(this.finance_tc) ) ...
views.py
from viewflow.flow.views.detail import DetailTaskView class AJAXDetailTaskView(DetailTaskView): def render_to_response(self, context, **response_kwargs): if self.request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest': print('An AJAX request') return JsonResponse('Success', safe=False, **response_kwargs) else: print('Not an AJAX request') return super(AJAXDetailTaskView, self).render_to_response(context, **response_kwargs) class StartView(StartFlowMixin, generic.UpdateView, flow.View): model = models.Item form_class = forms.AssetForm data = dict() detail_view_class = AJAXDetailTaskView def get_object(self): return self.activation.process.asset def get(self, request, *args, **kwargs): self.object = None form_class = self.get_form_class() form = self.get_form(form_class) context = self.get_context_data(form=form, data=self.data) html_form = render_to_string('asset/asset/partial_start.html', context, request=request, ) return JsonResponse({'html_form': html_form}) ...
内容的提问来源于stack exchange,提问作者dj.bettega
相关产品推荐
相关产品推荐

