2010-07-07 68 views
0

当在用户注册我打电话一些自定义的函数发送参数:如何申请表格

def user_created(sender, user, request, **kwargs): 
    form = ExtendedRegistrationForm(validateemail=True, request.POST, request.FILES) 

当请求一个形式,我需要提供额外的布尔参数validateemail。这虽然给我的错误:

Exception Type: SyntaxError at/ Exception Value: ('non-keyword arg after keyword arg', ('/home/myapp/regbackend.py', 59, None, 'form = ExtendedRegistrationForm(dontvalidateemail=True, request.POST, request.FILES)\n'))

我在做什么错?另外,如果我想在表单中使用这个参数,是否需要添加一个自定义的init方法?如:

def __init__(self, *args, **kwargs): 
    try: 
     validate = args['validate'] 
    except: 
     pass   
    if not validate: 
     validate = False   
    super(ExtendedRegistrationForm, self).__init__(*args, **kwargs) 
+1

阅读错误消息。它说什么?你对此有何解读? – 2010-07-07 01:18:01

+0

sohuld我在最后发送我的附加论据? – muntu 2010-07-07 01:18:49

回答

1

关键字参数必须位于参数后面。请尝试:

form = ExtendedRegistrationForm(request.POST, request.FILES, validateemail=True) 
+0

好的,那么修改init方法呢?我应该这样做:__init __(自我,请求,**参数,** kwargs)还是不同的? – muntu 2010-07-07 01:21:44

+0

没有必要;除了增加'validateemail'参数之外,您可以在父类中遵循相同的签名。 – mipadi 2010-07-07 04:02:49