django注册+;ajax,用户注册信号随机失败
我已经在我的项目中“成功”地将django注册与ajax集成 我正在使用user_registed信号在注册时向用户添加附加信息 每当我亲自测试时,一切都正常。但是,当我检查django admin以查看有多少用户注册时,我注意到一些用户创建时仅使用默认字段,而不包括使用信号回调创建的字段 django信号失败的原因是否已知 这是我的用户注册回调: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
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检查有多少用户实际注册了。