- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Viewflow 的 Django 1.11 项目 - https://github.com/viewflow/viewflow - 我已经合并了。它非常有帮助,但很多东西有点“神奇”,作为我第一个认真的 Django 项目,我遇到了一个问题,我不确定如何解决或最好的方法。
我有一个需要大量上下文的通用模板。我有一个函数可以将此上下文添加到我的所有 View 中:
def add_general_context(context, MOC, MOC_enabled_fields = (), MOC_status = None):
context['MOC'] = MOC
context['current_date'] = timezone.now().strftime("%D")
context['MOC_form'] = forms.MOCForm(prefix="MOC_form", MOC_enabled_fields=MOC_enabled_fields, instance=MOC)
context['MOCAttachments'] = models.MOCAttachment.objects.filter(MOC=MOC)
context['MOCAttachment_form'] = forms.MOCAttachmentForm(prefix="MOCAttachment_form")
context['MOCApprovals'] = models.MOCApproval.objects.filter(MOC=MOC)
context['MOCTasks'] = models.MOCTask.objects.filter(MOC=MOC)
context['MOC_status'] = MOC_status
context['MOCConversation'] = models.MOCConversation.objects.filter(MOC=MOC)
# Add comments to the conversation
for conversation in context['MOCConversation']:
conversation.comments = models.MOCComment.objects.filter(conversation=conversation)
context['MOCComment_form'] = forms.MOCCommentForm(MOC=MOC)
context['MOCCommentReply_form'] = forms.MOCCommentReplyForm()
我基本上需要将此上下文添加到 View 流内的 View - 即 AssignTaskView - https://github.com/viewflow/viewflow/blob/f50accb3cde5d53f1d4db0debf5936867712c3bd/viewflow/flow/views/task.py#L109
我已经尝试了一些方法来覆盖/添加到上下文,但似乎都不起作用。
尝试 1:覆盖 URL 并使用 extra_context(因此建议这样做)
- 问题是 url 是“魔法”,我的 urlpatterns 非常简单:
from material.frontend import urls as frontend_urls
urlpatterns = [
url(r'^MOC/', include('MOC.urls')),
url(r'', include(frontend_urls)),
]
覆盖 url 本身让我难以理解,我研究了一段时间,但它使用真正通用的函数来引入模块等。我什至不知道如何真正尝试它。
尝试 2:覆盖 View 本身和 get_context_data 函数
我认为这是可能的,但似乎行不通。我的尝试看起来与此类似(最新的尝试):
from viewflow.flow.views.task import AssignTaskView as CoreAssignTaskView
class AssignTaskView(CoreAssignTaskView):
def get_context_data(self, **kwargs):
context = super(AssignTaskView, self).get_context_data(**kwargs)
print("Did it work?")
return context
这在我的 views.py 中 - 但是,它根本无法运行。我可能遗漏了一些东西,但我无法弄清楚如何真正强制它使用我的 View 而不是 View 流中内置的 View 。
我已经毫无问题地成功覆盖了 Viewflow 的模板,但覆盖任何其他内容超出了我的范围。有什么建议吗?
最佳答案
是的,您实际上可以通过将 View url 放在 url_patterns 之上来覆盖它
urlpatterns = [
url(
r'^/workflow/appname/flowname/(?P<process_pk>\d+)/taskname/(?P<task_pk>\d+)/assign/$',
YouCustomView.as_view(),
{'flow_task': FlowClass.taskname},
name="{}__assign".format(self.name)))
),
url(r'', include(frontend_urls)),
]
但是创建自定义流程更简单。查看子类并设置您自己的分配 View
https://github.com/viewflow/viewflow/blob/master/viewflow/flow/nodes.py#L306
from viewflow import flow
class MyView(flow.View):
assign_view_class = MyAssignTaskView
流.py:
class MyFlow(Flow):
...
taskname = MyView(UpdateProcessView).next(this.end)
这就是您可以覆盖任何内置 View 的方式。
Viewflow 旨在提供代码库中的所有旋钮。您可以通过子类化流或流节点类来自定义任何行为。
自定义节点示例可能会有所帮助
https://github.com/viewflow/viewflow/blob/master/demo/customnode/nodes.py
关于python - 使用自定义上下文覆盖 Django View (Django 1.11,Viewflow),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47064749/
我有兴趣在 django-viewflow 中创建一个休息驱动的流程。我一直在阅读官方页面,通过这样做,我得出的结论是,在获得 View 流的专业版本以进行休息集成之后,我仍然需要为节点制作自己的休息
我正在尝试自定义 Viewflow 中的默认 /workflow/archive/ View 。(如 http://demo.viewflow.io/workflow/archive/ ) 我需要删除
我对 Github 上 pakerfeldt 的 ViewFlow 类有疑问。 我正在尝试创建一个“不同的 View View 流”。这是我的 Activity 代码: package com.sun
我正在做一个将一些图像保存到 sdcard 的项目,现在我必须创建 View 流来显示这些图像。我通过 sdCard 的 Id 获取图像,我现在的问题是如何在不同图像之间滑动。这是我正在使用的代码:
使用 ViewFlow 库(请参阅 http://viewflow.io/ ),是否可以拥有动态“子流”? 用例: 我有一个静态流程来检查网上商店中的一篮子产品。该过程的第一步是查看购物篮并收集用户的
我正在使用 ViewFlow & CircleFlowIndicator至 view & show圈到indicate View 的变化 还是我showing same text对于每一个View ,
概要 我正在开发一个网络应用程序来学习 Django(python 3.4 和 Django 1.6.10)。 Web 应用程序具有复杂且经常更新的工作流程。我决定集成 Django-Viewflow
我想在标准之外集成流程、启动它们等 viewflow.frontend .为此,我一直在尝试创建一个简单的页面,在那里我可以开始一个新的流程,但一直在努力寻找一种方法来实现它。 一种方法是定义一个 u
我有一个 API 端点,/api/create/。这将根据从客户端接收到的有效负载在数据库中创建一个新条目。 Payload - { 'field1': 'value1`, 'field2': 'va
我正在创建一个 Django Viewflow 应用程序,我正在尝试向它添加 Multi-Tenancy ,但我不确定如何去做。我正在使用 MySQL 在 Django 上构建应用程序(我无法从 My
我有一个使用 Viewflow 的 Django 1.11 项目 - https://github.com/viewflow/viewflow - 我已经合并了。它非常有帮助,但很多东西有点“神奇”,
使用 ViewFlow 库(请参阅 http://viewflow.io/ ),我正在研究以下用例: 单步执行流程时,建议后退的模式是什么?现在我只知道如何前进(这是默认行为)。但是,如果我想更新/更
我是一名优秀的程序员,十分优秀!