Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Python 我如何发送电子邮件,创建确认链接以单击它?_Python_Django_Registration_Confirm_Email Confirmation - Fatal编程技术网

Python 我如何发送电子邮件,创建确认链接以单击它?

Python 我如何发送电子邮件,创建确认链接以单击它?,python,django,registration,confirm,email-confirmation,Python,Django,Registration,Confirm,Email Confirmation,models.py: class Users(models.Model): username = models.CharField(max_length=255) slug = models.CharField(max_length=255, default='0') password = models.CharField(max_length=300) passwordrepeat = models.CharField('Repeat Password', ma

models.py:

class Users(models.Model):
    username = models.CharField(max_length=255)
    slug = models.CharField(max_length=255, default='0')
    password = models.CharField(max_length=300)
    passwordrepeat = models.CharField('Repeat Password', max_length=300)
    password_token = models.CharField(max_length=300, default='0')
    email = models.CharField(max_length=255)
    email_verified = models.BooleanField(default=False)
    email_token = models.CharField(max_length=255)
    email_token_expiry = models.DateTimeField()
    tos = models.BooleanField(default=False)
    active = models.BooleanField(default=False)
    last_login = models.DateTimeField(auto_now_add=True)
    last_action = models.DateTimeField(auto_now_add=True)
    is_admin = models.BooleanField(default=False)
    role = models.CharField(max_length=255, default='0')
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.username

class UsersModelForm(forms.ModelForm):
    class Meta:
        model = Users
        fields = ('username', 'password', 'passwordrepeat', 'email')
        widgets = {
            'password' : PasswordInput(),
            'passwordrepeat' : PasswordInput(),
        }
views.py:

def register(request):
    flag = True
    possible = '0123456789abcdefghijklmnopqrstuvwxyz'
    token = ''

    current_datetime = datetime.datetime.now()

    user = UsersModelForm()
    if request.method == 'POST':
        userf = UsersModelForm(request.POST)
        username = userf.data['username']
        password = userf.data['password']
        passwordrepeat = userf.data['passwordrepeat']
        email = userf.data['email']

        password = bcrypt.hashpw(password,bcrypt.gensalt())
        passwordrepeat = bcrypt.hashpw(passwordrepeat,bcrypt.gensalt())

        userf.data['password'] = password
        userf.data['passwordrepeat'] = passwordrepeat

        if password != passwordrepeat:
            flag = False
            passVariable = {'user':user, 'flag': False}
            return render_to_response('register.html', passVariable, context_instance=RequestContext(request))

        elif password == passwordrepeat:
            for i in range(1,10):
                temp = random.choice(possible)
                token = token + temp

            print token
            if userf.is_valid():
                check = userf.save(commit=False)
                check.email_token = token
                check.email_token_expiry = current_datetime + timedelta(1)
                check.save()
                return HttpResponseRedirect('/')
    else:
        return render_to_response('register.html', {"user": user, 'flag': True}, context_instance=RequestContext(request))
将数据保存到表中后,我需要向用户发送该令牌以确认注册的电子邮件地址。我该怎么做

如果有人帮我修复它,我将不胜感激。

使用,它附带所有这些逻辑和更多,免费。请注意,从一些开始更容易。

使用,它附带所有这些逻辑和更多,免费。请注意,从以下文档开始更容易。

:-

来自


:-

我不会使用django注册。我想做一个定制的。好的。如果你想重新发明轮子,你也可以重新编码ORM。Django对所有已经有用的东西都很无聊。你说的ORM是什么意思?你能发布那个ORM代码的链接吗?你在说这个吗,我不想重新编码,我想写我自己的注册/授权。这是一个讽刺的评论。我不会使用django注册。我想做一个定制的。好的。如果你想重新发明轮子,你也可以重新编码ORM。Django对所有已经有用的东西都很无聊。你说的ORM是什么意思?你能发布那个ORM代码的链接吗?你在说这个吗,我不想重新编码,我想写我自己的注册/认证。这是一个讽刺的评论。我需要发送消息创建一个与令牌的链接。我如何发送带有该链接的电子邮件?我想你需要仔细阅读上面的链接。。。上面的例子为您提供了所需的一切。您需要从所创建的对象中提取令牌,或者保留对它的引用,然后将其插入到主体中。我怀疑您真正想要的是django注册,因为它的适应性非常强,正如下面的答案所示。我需要发送消息,创建一个带有令牌的链接。我如何发送带有该链接的电子邮件?我想你需要仔细阅读上面的链接。。。上面的例子为您提供了所需的一切。您需要从所创建的对象中提取令牌,或者保留对它的引用,然后将其插入到主体中。我怀疑您真正想要的是django注册,因为它具有很强的适应性,正如下面的答案所示。
from django.core.mail import send_mail

send_mail('Subject here', 'Here is the message.', 'from@example.com',
    ['to@example.com'], fail_silently=False)