1

我试图找到类似的话题,但对我没有多大帮助。

我的错误(例如):

使用参数“(u'pU6ARMPCgHeyTAGhBWYwxZqLSUtwqWHqnf9MNEfd',)”和关键字参数“{}”反转“user_activate”

网址.py:

url(r'^user/activate/([A-Za-z0-9]+)$','users.views.activate', name='user-activate'),

视图.py:

def activate(request, key):
    user = User.objects.select_related('profile').get(activation_key=key)
    if user is not None:
       if user.is_active:
           print 'already active'
       else:
          if user.get_profile().check_key_is_valid():
             user.is_active = True
             user.save()
          else:
             user.get_profile().reset_activation_data()
             send_activation_email(user.get_profile().activation_key, user.email)
             print 'key expired'
    else:
        print 'user not found'
    return HttpResponseRedirect(reverse('front'))

模型.py:

def send_activation_email(key, email):
    from django.core.urlresolvers import reverse
    path = reverse('user_activate', args=[key])
    from django.contrib.sites.models import Site
    site = Site.objects.get_current().domain
    url = "http://%s%s" % (site, path)

    from django.core.mail import send_mail
    from my_app import settings
    send_mail('Account activation', url, settings.SITE_EMAIL,
        [email], fail_silently=False)

我在这里做错了什么?

4

1 回答 1

3

您已将 url 命名为name='user-activate'(with dash),而您尝试使用'user_activate'with进行反向查找'_'

改变

path = reverse('user_activate', args=[key])

path = reverse('user-activate', args=[key])
于 2012-10-22T09:15:55.693 回答