Я только изучаю Django и застреваю с некоторой логикой URL. Я пытаюсь разрешить или имя категории или идентификатор в URL:
...
url(r'^(?P<booze_q>\w+|\d+)/$','glasses.views.booze'),
...
А потом, с точки зрения thew, иметь дело с этим результатом только один раз. Однако, если URL является строкой - в этом случае Whiskey
, я получаю сообщение об ошибке при попытке передать строку, где ожидается int. Это самое близкое, что я получил до сих пор:
def booze(request, booze_q):
booze = get_object_or_404(Booze,Q(pk=booze_q)|Q(name=booze_q))
return render_to_response('booze/detail.html', {'booze': booze})
Но это возвращает ошибку: invalid literal for int() with base 10: 'Whiskey'
Я уверен, что это довольно легко, но это мое первое приложение Django, поэтому любая помощь будет принята с благодарностью.
tl; dr : Конечный результат, я бы хотел, чтобы mysite.com/1/
или mysite.com/Whiskey/
оба вызывали представление glasses.views.booze
и получали объект с id=1
или name=Whiskey