Ошибка шаблона Django: Не удалось разобрать остаток: ',' из 'uid,'?

Я использую Django forgot_password рамки с пользовательским шаблоном. я использую Django 1.5, Мой пользовательский шаблон password_reset_email.html выглядит так:

{% autoescape off %}
You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}.

Please go to the following page and choose a new password:
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %}
{% endblock %}

Your username, in case you've forgotten: {{ user.username }}

Thanks for using our site!

The {{ site_name }} team.

{% endautoescape %}

#Exception:
Exception Type: TemplateSyntaxError at /accounts/password/reset/
Exception Value: Could not parse the remainder: ',' from 'uid,'

4 ответа

Решение

Поместите это в топ:

 {% load i18n %}{% load url from future %}
 {% autoescape off %}
 ..........

Удалить ,кладешь рядом uidb36=uid,

 {% url 'django.contrib.auth.views.password_reset_confirm' uidb36=uid token=token %}

У меня недостаточно очков репутации, чтобы комментировать принятый ответ, но {% load url from future %} не требуется, поскольку вы используете Django 1.5. Это было нужно только в Django 1.3 и 1.4. https://docs.djangoproject.com/en/dev/releases/1.3/

По состоянию на 2022 год (версия django 4.0.5) ни один из ответов здесь не помог мне. Пришлось изменить строчку:

      {% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %}

к:

      {% url 'password_reset_confirm' uid token %}

гдеpassword_reset_confirmэтоnameкоторый я дал для подтверждения сброса пароля в моем шаблоне URL, который находится вurls.pyфайл внутри приложения, где я управляю своей системой регистрации пользователей (приложение называетсяusers):

      path('pattern/<uidb64>/<token>', django.contrib.auth.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm')

моя проблема решена, написав это. Я использую django 4.1.

{% URL 'password_reset_confirm' uidb64=uid токен=токен %}

Другие вопросы по тегам