2017-12-06 1 views
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 

답변

0

: 여기 내이다.

+0

추가 :'pk'는 기본 키를 의미합니다. – OptimusCrime

+0

이상한. 나는 그것을했고 전에는 작동하지 않았다고 맹세합니다. 그래서 나는 별도의 템플릿에서 href = "{% url 'detail'slug = location.slug %}"를 사용하여 pk를 사용하는 것을 되돌 렸습니다. 하지만 고맙습니다. – pinksharpii

관련 문제