我的Django的网址不工作,我得到一个错误ReverseMatch:正则表达式错误
Reverse for 'activation_mail' with arguments '()' and keyword arguments '{u'activation_key': '1c38a44d216a51c26e65d789a3d8af2677cebebd', u'email': u'[email protected]', u'site_url': 'http://127.0.0.1:8000'}' not found. 1 pattern(s) tried: [u'accounts/mails/(P<activation_key>[0-9a-zA-Z]{40})/(P<email>[a-zA-Z0-9_.+-][email protected][a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)/(P<site_url>.*)/$']
发生的错误当用户注册到网站。输入验证码后,尝试向用户地址发送确认电子邮件时发生错误。
urls.py:
urlpatterns = patterns(
url(r'^mails/(P<activation_key>[0-9a-zA-Z]{40})/(P<email>[a-zA-Z0-9_.+-][email protected][a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)/(P<site_url>.*)/$', TemplateView.as_view(template_name='accounts/mails/activation_email.html'), name='activation_mail'),
)
邮件是从触发模型下面的函数的观点发送...
models.py:
class SignupProfile(models.Model):
objects = SignupManager()
user = models.ForeignKey(settings.AUTH_USER_MODEL, unique=True,
verbose_name=_("utilisateur"))
activation_key = models.CharField(_("clef d'activation"), max_length=40)
def send_activation_email(self, request):
activation_url = reverse(
'accounts:activation',
kwargs={'activation_key': self.activation_key})
ctx = Context({'site_url': settings.SITE_URL,
'activation_key': self.activation_key,
'email': self.user.email})
html_tpl = get_template('accounts/mails/activation_email.html')
html_content = html_tpl.render(ctx)
msg = EmailMultiAlternatives(subject, text_content,
settings.DEFAULT_FROM_EMAIL,
[self.user.email])
msg.attach_alternative(html_content, 'text/html')
msg.send()
错误发生在用于邮件的模板中...
周的index.html:
<a href="{% url 'accounts:activation_mail' activation_key=activation_key email=email site_url=site_url %}" target="_blank">View this email in your browser</a>
我已经使用http://pythex.org/,正则表达式的作品。 什么是错误?
我'有点困惑的设置:'view.py'中的单个函数不是视图,它是发送电子邮件的逻辑。这是你的主要'urls.py'文件的整体吗?它应该设置一个'urlpatterns'变量来保存这些url。如果没有看到您用于关键字变量的值,则无法完全回答。 – Tom
我刚刚编辑了我的帖子以获得更多详细信息。 – rom