Django Невозможно найти обратный () URL - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть следующие настройки URLConf:

urlpatterns = patterns('myapp.views',
    url(r'^$', 'index', name="home"),
    url(r'^login$', 'login'),
)

Пока, на мой взгляд, у меня есть это:

def index(request):
    """Displays paginated message views"""
    return HttpResponseRedirect(reverse("myapp.views.login"))

def login(request):
    """Displays login screen"""
    return render_to_response('myapp/login.html', {
            "title": "Login"
    })

Проблема возникает, когда я пытаюсь перейти на страницу входа,Кажется, Django не может найти мой URL.

При переходе по ссылке http://localhost:8000/login, Я получаю следующую ошибку:

Страница не найдена (404) Метод запроса:GET Запрос URL: http://localhost:8000/login 'логин' не найден. Вы видите эту ошибку, потому что в вашем файле настроек Django есть DEBUG = True.Измените это на False, и Django отобразит стандартную страницу 404.

Кажется, что даже несмотря на то, что я использую функцию реверса, чтобы найти собственный рекомендуемый URL Django на основе моего URLConf, он все еще не можетнайти свой собственный URL!

Есть идеи?

РЕДАКТИРОВАТЬ: Мне нужно кое-что прояснить: проблема не в том, что Django не может выяснить правильный URL, а в том, что, как только этот URLзагружен, Django не может найти представление, связанное с этим.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2011

Оказывается, ошибка была вызвана тем, что я изменил переменную STATIC_URL в моем файле settings.py. Смена этого значения на "/ static /" заставила все работать.

0 голосов
/ 11 ноября 2011

Вы можете добавить атрибут name к вашему URL, например, этот URL (r '^ $', 'index', name = "home"),

, а затем вызвать реверс с этим именем

examples

urlpatterns = pattern ('', url (r '^ archive / (\ d {4}) / $', archive, name = "full-archive"), url (r '^ archive-summary / (\ d {4}) / $ ', архив, {' summary ': True}, "arch-summary"),)

из django.core.urlresolvers импорт обратный

def myview (request): вернуть HttpResponseRedirect (reverse ('arch-summary', args = [1945]))

...