urls.py:Ошибка URL перенаправления
url(r'^book/(?P<booktitle>[\w\._-]+)/(?P<bookeditor>[\w\._-]+)/(?P<bookpages>[\w\._-]+)/(?P<bookid>[\d\._-]+)/$', 'book.views.book', name="book"),
views.py:
def book(request, booktitle, bookeditor, bookpages, bookid, template_name="book.html"):
book = get_object_or_404(book, pk=bookid)
if booktitle != book.book_title :
redirect_to = "/book/%s/%s/%s/%s/%i/" % (booktitle, bookeditor, bookpages, bookid,)
return HttpResponseRedirect(redirect_to)
return render_to_response(template_name, { 'book': book, },)
.
Так URLs каждой книги, как это:
example.com/book/the-bible/gesu-crist/938/12/
Я хочу, что если есть ошибка в url, то я перенаправляюсь к реальному URL-адресу, используя book.id в конце URL-адреса.
Например, если я иду:
example.com/book/A-bible/gesu-crist/938/12/
тогда я попадаю на:
пример. com/book/the-bible/gesu-crist/938/12/
.
, но если я иду в неправильном URL я получаю эту ошибку:
TypeError at /book/A-bible/gesu-crist/938/12/
%d format: a number is required, not unicode
.
Если я использую% s, то я получаю эту ошибку:
* Страница не перенаправлять правильно Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что никогда не будет завершена. * Эта проблема иногда может быть вызвана отключением или отказом в принятии файлов cookie. *
Почему? Что мне нужно делать?
я использовал% S, но я получаю эту ошибку: страница не перенаправлять правильно Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что никогда не будет завершена. * Эта проблема иногда может быть вызвана отключением или отказом принимать файлы cookie. – xRobot
@xRobot: вы работаете в цикле переадресации, что означает, что этот оператор 'if booktitle! = Book.book_title' всегда прав ... это было бы потому, что вы используете'% (booktitle, bookitor, bookpages, bookid,) 'вместо' (book.title, book.editor, ....) ' – mpen
ops .. вы правы ... теперь работаю спасибо;) – xRobot