You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Viewflow:流程启动时如何通过URL传递字段值?

如何通过启动URL向Django Viewflow流程传递参数?

当然可以通过启动URL的查询参数向Django Viewflow流程传递值,以下是具体实现步骤:

1. 自定义类启动视图获取URL参数

如果使用Viewflow的类视图启动流程,可继承默认启动视图并重写get_initial方法,从request.GET中提取URL参数并传入流程实例:

from viewflow import flow
from viewflow.views import StartFlowMixin, ProcessFormView
from .models import MyProcess  # 你的流程模型,需包含note字段

class CustomStartView(StartFlowMixin, ProcessFormView):
    def get_initial(self):
        initial = super().get_initial()
        # 从URL查询参数中提取note值
        note_param = self.request.GET.get('note')
        if note_param:
            initial['note'] = note_param
        return initial

# 在流程定义中指定自定义启动视图
class MyProcessFlow(flow.Flow):
    process_class = MyProcess

    start = flow.Start(CustomStartView).Permission(auto_create=True)
    # 后续流程节点定义...

2. 函数式启动视图的处理方式

若采用函数式视图启动流程,可直接在视图函数中读取URL参数并赋值给流程实例:

from viewflow.flow.views import start_function
from .models import MyProcessFlow

@start_function
def start_my_process(request, activation):
    # 提取URL中的note参数
    note = request.GET.get('note')
    if note:
        activation.process.note = note
        activation.process.save()
    # 完成流程启动并跳转
    return activation.redirect('/my_process/')

# 流程定义中关联该函数视图
class MyProcessFlow(flow.Flow):
    process_class = MyProcess

    start = flow.Start(start_my_process).Permission(auto_create=True)

3. 注意事项

  • 确保你的流程模型MyProcess已正确定义note字段
  • 可对获取到的note参数做合法性校验(如过滤特殊字符),避免恶意输入
  • 如果不需要用户查看或修改该参数,可跳过表单赋值步骤,直接在启动逻辑中写入流程实例

内容的提问来源于stack exchange,提问作者Tooblippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:22:03