0
장고에서 위치 모델을 설정했고 원래 URL이/location/3/기본 키를 사용하도록 설정했습니다. 클라이언트는 위치 이름의 슬러그를 사용하도록 클라이언트를 변경하려고합니다. 모델에 슬러그 필드를 만들었습니다. urls.py에서 URL 패턴을 변경했습니다.Django URL은 밑이 10 인 int()에 대해 리터럴이 올바르지 않습니다.
urlpatterns = [
url(r'^(?P<pk>[\w-]+)/$', views.LocationsSingleView.as_view(), name='detail'),
]
나는 그 (것)들 잘 연결할 수있다. 그러나 실제로 페이지를로드하려고하면 오류가 발생합니다.
invalid literal for int() with base 10: 'eau-claire'
e-claire는 해당 위치의 슬러그입니다.
Documentation이 것에 대해서는 아무런 언급이 없습니다.
이 문제를 가진 많은 사람들이 자신의 견해에 문제가 있습니다. 그러나 나의 견해는 아주 간단하다. 그래서 나는 무엇이 잘못되었는지를 모른다. 당신은 당신이 슬러그에 의해보고 싶은 장고에게 URL 패턴에 slug
대신 pk
를 사용할 필요가
class LocationsSingleView(DetailView):
model = models.Location
추가 :'pk'는 기본 키를 의미합니다. – OptimusCrime
이상한. 나는 그것을했고 전에는 작동하지 않았다고 맹세합니다. 그래서 나는 별도의 템플릿에서 href = "{% url 'detail'slug = location.slug %}"를 사용하여 pk를 사용하는 것을 되돌 렸습니다. 하지만 고맙습니다. – pinksharpii