2016-12-22 2 views
0

내 URL에 슬러그를 사용할 때 문제가 있습니다. 그것은 어떤 게시물도 검색어와 일치하지 않는다고 말했다.장고 슬러그 링크 편집 페이지를 찾을 수 없습니다.

편집 및 삭제 페이지에서 문제가 발생해도 세부 정보 페이지에서 정상적으로 작동합니다.

하지만 이상한 점은 post_update가 아닌 post.views.post_detail에서 발생하는 404 오류입니다. 포스트 응용 프로그램 내부

내 URL을

urlpatterns = [ 

url(r'r^$', post_list, name='list'), 
url(r'^create/$', post_create, name='create'), 
url(r'^(?P<slg>[\w-]+)/$', post_detail, name='detail'), 
url(r'^(?P<slg>[\w-]+)/edit/$', post_update, name='update'), 
url(r'^(?P<slg>[\w-]+)/delete/$', post_delete), 

] 

견해

def post_detail(request, slg=None): 
    instance = get_object_or_404(Post, slg=slg) 
    context = { 
    "title":intance.title, 
    "instance":instance 
    } 
    return render(request, "post_detail.html", context) 

def post_update(request, slg=None): 
    instance = get_object_or_404(Post, slg=slg) 
    form = PostForm(request.POST or None, request.FILES or None, instance=instance) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
     return HttpResponseRedirect(instance.get_absolute_url()) 
    context = { 
     "title":instance.title, 
     "instance":instance, 
     "form", form, 
    } 
    return render(request, "post_form.html", context) 

get_absolute_url 기능은 이미 SLG을 반환합니다. 유일한 문제는 편집 페이지에서 찾을 수없는 게시물입니다. 심지어 slg 제목도 현재 사용 가능한 게시물과 일치합니다.

System check identified no issues (0 silenced). 
December 23, 2016 - 17:52:00 
Django version 1.9.7, using settings 'blog.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
Not Found: /hahaha/edit/ 
[23/Dec/2016 17:52:08] "GET /hahaha/edit/ HTTP/1.1" 404 1725 

post_update 기능이 실행되지 않는 것과 같습니다.

무엇이 잘못되었을 수 있습니까? 감사합니다.

+2

그렇다면 여가 시간에 자신의 대통령 임기가 끝나면 어떻게 될까요? –

+2

누락 된'''이있는 것 같습니다. – cwallenpoole

+0

실제 코드와 전체 추적을 게시하십시오. –

답변

2

귀하의 URL에 작은 따옴표 '가 누락되었습니다. URL 패턴이 유효해야합니다. str

url(r'r^$', post_list, name='list'), 
url(r'^create/$', post_create, name='create'), 
#   ^
url(r'^(?P<slg>[\w-]+)/$', post_detail, name='detail'), 
#      ^
url(r'^(?P<slg>[\w-]+)/edit/$', post_edit, name='edit'), 
#       ^
url(r'^(?P<slg>[\w-]+)/delete/$', post_delete), 
#       ^
+0

실례합니다. 질문에 코드를 쓰는 제 실수 때문에, 고마워요.하지만 그게 저를 괴롭히는 것이 아니라고 확신합니다. 나는 내가 알아봐야 할 곳을 알고 있거나 아는가? –