Если вы хотите иметь возможность указать reverse () с параметрами, эти параметры должны быть определены в самой конфигурации URL (regexp).Примерно так:
url(r'^register/(?P<success_url>[\w\/]+)/$',
register,
{ 'backend': 'registration.backends.default.DefaultBackend' },
name='registration_register'),
Вы можете заключить этот раздел URL в ()? , чтобы сделать его необязательным (чтобы он совпадал с простым регистром / тоже). Разница между args и kwargs заключается в том, что с помощью аргументов можно указывать неназванные / именованные параметры URL, а с kwargs только именованными.Итак:
r'^register/(?P<success_url>\w+)/$'
reverse('url_name', args=[my_success_url])
reverse('url_name', kwargs={'success_url': my_success_url}) // both work and do the same
r'^register/(\w+)/$'
reverse('url_name', args=[my_success_url]) // only this works
Редактировать : Для параметров success_url, если вы хотите иметь возможность сопоставлять любой полный относительный URL, включая возможные параметры GET в относительном URLФактическое регулярное выражение может быть довольно сложным.Что-то вроде (не проверено):
r'^register/(?P<success_url>[\w\/]+(((\?)([a-zA-Z]*=\w*)){1}((&)([a-zA-Z]*=\w*))*)?)/$'