我的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