Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django注册+;ajax,用户注册信号随机失败_Ajax_Django_Django Registration_Django Signals - Fatal编程技术网

django注册+;ajax,用户注册信号随机失败

django注册+;ajax,用户注册信号随机失败,ajax,django,django-registration,django-signals,Ajax,Django,Django Registration,Django Signals,我已经在我的项目中“成功”地将django注册与ajax集成 我正在使用user_registed信号在注册时向用户添加附加信息 每当我亲自测试时,一切都正常。但是,当我检查django admin以查看有多少用户注册时,我注意到一些用户创建时仅使用默认字段,而不包括使用信号回调创建的字段 django信号失败的原因是否已知 这是我的用户注册回调: def user_registered_callback(sender, user, request, **kwargs): # Creat

我已经在我的项目中“成功”地将django注册与ajax集成

我正在使用user_registed信号在注册时向用户添加附加信息

每当我亲自测试时,一切都正常。但是,当我检查django admin以查看有多少用户注册时,我注意到一些用户创建时仅使用默认字段,而不包括使用信号回调创建的字段

django信号失败的原因是否已知

这是我的用户注册回调:

def user_registered_callback(sender, user, request, **kwargs):
    # Create a new instance of Registration form and bind the POST data
    form = CustomRegistrationForm(request.POST)
    form.full_clean()

    # Generate new filename from timestamp and first name
    fn = hashlib.md5()
    fn.update( str(time.time()) + form.cleaned_data['first_name'] )
    filename = fn.hexdigest() + '.jpg'

    # Save additional details for the user
    u = user
    u.first_name = form.cleaned_data['first_name']
    u.last_name = form.cleaned_data['last_name']
    u.birthdate = form.cleaned_data['birthdate']
    u.mobile = form.cleaned_data['mobile']
    u.photo = 'photos/' +  filename
    u.save()

用户注册的信号是django注册引入的自定义信号,因此我假设如果使用django的原始管理站点,它不会被触发。另外,为什么要触发它,因为在管理员中添加用户并不是注册自己的用户

请尝试注册处理程序以进行用户类的后期保存:

@receiver(post_save, sender=User)
def user_post_save(sender, instance, **kwargs):
    if not instance.pk:
        # instance was just created

我意外地复制了这个错误,并通过开发人员工具跟踪了它是什么


结果,一些用户向
first\u name
添加的字符串长度超过了我在数据库中为该字段设置的最大长度。但是,我无法为该字段添加
表单
验证,这就是为什么它能够通过我的表单作为有效的。因此,该应用程序能够创建一个新用户,但当涉及到更新
用户配置文件时
它无法使其看起来好像信号回调没有运行。

很抱歉,我在问题中没有明确说明。新用户是使用我使用ajax创建的django注册实现创建的。我只是用django admin检查有多少用户实际注册了。