2015-02-23 57 views

回答

5

您不必在流程模型中存储所有原始数据。过程模型是所有过程相关数据的根条目。只需在您自定义的用户里面添加ForeignKey过程模型

from django.contrib.auth.models import User 
from viewflow.models import Process 

class NewUserProcess(Process): 
    user = models.ForeignKey(User, blank=True, null=True) 

对于表单处理,viewflow不会添加任何新的标准django。像往常一样,您可以使用django标准的基于类的视图或基于功能的简单视图,并使用任何您需要的表单处理代码。下面是基于功能视图的例子:

from viewflow import flow 
from viewflow.base import Flow 
from viewflow.flow import flow_start_view 


class NewUserFlow(Flow): 
    registration = flow.StartView(registraton_view).Next(...) 


@flow_start_view 
def registraton_view(request, activation): 
    activation.prepare(request.POST or None, user=request.user) 
    form = RegistrationForm(request.POST or None) 

    if form.is_valid(): 
     activation.process.user = form.save() 
     activation.done() 
     return redirect(...) 

    return render(request, 'registration.html', { 
     'form': form, 
     'activation': activation, 
    }) 

对于基于类的意见的情况下,您可以指定自定义窗体类和往常一样:

from viewflow.flow.views import StartFlowMixin 

class RegistrationView(StartFlowMixin, generic.CreateView): 
    form_class = RegistrationForm 

    def activation_done(self, form): 
     self.activation.process.user = self.object 
     self.activation.done() 

此外,您可以检查viewflow自定义视图演示源代码 - https://github.com/viewflow/cookbook/blob/master/custom_views/demo/bloodtest/views.py

相关问题