You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中无法在邮件正文中获取UUID值的问题

邮箱验证链接异常问题解决

问题表现:通过mailtrap.io收到的验证邮件中,链接显示为:

http://127.0.0.1:8000/verify/<function uuid4 at 0x103f32040>/

问题原因

代码里错误地把uuid.uuid4函数对象直接转成了字符串,而非调用该函数生成UUID值。uuid.uuid4是函数本身,不加括号时,它的字符串表示就是类似<function uuid4 at 0x103f32040>的内容。

修正后的代码

class customer_register(CreateView):
    model = User
    form_class = CustomerSignUpForm
    template_name = 'authentication/customer_register.html'
    def form_valid(self, form):
        user = form.save()
        # 调用uuid.uuid4()生成UUID,再转成字符串
        user.token = str(uuid.uuid4())
        subject = 'Verify your account | Zane'
        message = f"http://127.0.0.1:8000/verify/{user.token}/"
        send_mail(
            subject,
            message,
            'from@example.com',
            ['to@example.com'],
            fail_silently=False,
        )
        # 保存修改后的token到数据库
        user.save()
        return super().form_valid(form)

关键修正点

  • 将str(uuid.uuid4)改为str(uuid.uuid4()):加括号调用函数,生成实际的随机UUID字符串
  • 补充user.save():表单save()后修改了user的token字段,必须调用save()才能把改动同步到数据库

内容的提问来源于stack exchange,提问作者kurac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:35:35