Django查看单一表单处理

时间:2012-04-24 01:15:42

标签: django

我是Django的新手,想在下面的代码中得到澄清,我在views.py中看到了代码,想知道它是如何工作的。一般在视图中,我用变量调用我的hmtl THA

sfp = SimpleFormProcessing(
    form_class=VolunteerSignupForm,
    form_2_model=volunteersignupform_2_model,
    form_template='signups/create_contact_form.dmpl',
    email_template='signups/response_email.dmpl',
    email_html_template='signups/response_email_html.dmpl',
    email_subject='Vibha Volunteer Signup',
    email_sender='volunteer@vibha.org',
    redirect_url='/signups/thanks/',
    do_captcha=True)

1 个答案:

答案 0 :(得分:1)

我不知道SimpleFormProcessing的目的,但每次看到

something(....)我们很可能将一些参数传递给函数/类的构造函数。

在这种情况下,我的疯狂猜测是SimpleFormProcessing只是一个包装器(无论是类还是函数,在这里都是无关紧要的),它处理所有的注册过程。

换句话说,它通常是一个包装函数或类(将其视为用户的API),它接受一堆参数,然后调度作业。

例如,假设它是一个函数。

def SimpleFormProcessing(*args, **kwargs):
  form_class = kwargs.get('form_class', None)
   ...... # get all the parameters from kwargs (a dictionary) .....

  # now let's do something
  add_user_to_volunteer_list(form)
  email_user(email_subject, email_sender....)
  ... and more ....

如果这是一个类(调用类构造函数),那么它可能会使用传入的参数赋值属性(成员属性)。因此可能会有一些类方法可以稍后调用。

#sfp is now a class object. We might have....
sfp.email_user()
sfp.get_sender()
and etc

当然,您需要找到SimpleFormProcessing的内容并查看代码。我发现它不是Django的一部分。

它可能是一个拥有自定义管理器,中间件等的应用程序?例如,在Django中我们有

RequestContext(request, { 'foo': 'bar', }) 

和RequestContext是一个内置的Django类。