0

我使用 django-registration 模块,但这是一个 django/python 问题。

在自定义视图中:

def register(self, request, **cleaned_data):

    firstname, lastname, email, password = cleaned_data['firstname'], cleaned_data['lastname'], cleaned_data['email'], cleaned_data['password']
    if Site._meta.installed:
        site = Site.objects.get_current()
    else:
        site = RequestSite(request)
    new_user = RegistrationProfile.objects.create_inactive_user(email, email,
                                                                password, firstname,
                                                                lastname, site)

    signals.user_registered.send(sender=self.__class__,
                                 user=new_user,
                                 request=request)
    return new_user

当我发送表单时,我收到此错误:

TypeError at /accounts/register/
 create_inactive_user() takes at most 6 arguments (7 given)

指向我的 create_inactive_user(email, email, password, firstname, lastname, site) ... 有 6 个参数!!!

我尝试使用硬编码值,但得到了相同的信息。

4

2 回答 2

0

当你调用一个方法时,self被隐式添加为第一个参数。

您是否忘记self在函数定义中包含第一个参数?

于 2013-10-28T22:23:13.647 回答
0

代码来看,create 方法不需要名字和姓氏参数——self 将被隐式传递,但它希望你传递 5 个变量——用户名、电子邮件、密码、站点和可选的 send_email。

你给它太多(和不正确)的论点:)

于 2013-10-28T23:21:44.560 回答