2017-03-05 1 views
2

이것은 장고에서 내 게시물 앱을 위해 작성된보기입니다. 문제는 업데이트 양식을 채운 후 제출하면 성공적으로 발생한다는 것입니다. 그러나 동일한 HTML 페이지가 있고 업데이트 된 객체로 어떻게 리디렉션 할 수 있기 때문에 사용자에게 혼란을 야기합니까?보기에서 리디렉션 할 수있는 방법 Django에서

def post_update(request,id=None): 
    instance=get_object_or_404(Post,id=id) 
    if instance.created_user != request.user.username : 
     messages.success(request, "Post owned by another user, You are having read permission only") 
     return render(request,"my_blog/denied.html",{}) 
    else : 
     form=PostForm(request.POST or None,request.FILES or None,instance=instance) 
     if form.is_valid(): 
      instance=form.save(commit=False) 
      instance.save() 
     context={ "form":form, 
        "instance":instance } 

     return render(request,"my_blog/post_create.html",context) 

고맙습니다.

답변

5

http 바로 가기에서 redirect을 사용할 수 있습니다.

from django.shortcuts import redirect 

def my_view(request): 
    ... 
    object = MyModel.objects.get(...) 
    return redirect(object) #or return redirect('/some/url/') 

공식 문서는 link입니다.

2

@mdegis에서 이미 제안했듯이 Django 리다이렉트 함수를 사용하여 다른 뷰나 URL로 리디렉션 할 수 있습니다.

from django.shortcuts import redirect 

def view_to_redirect_to(request): 
    #This could be the view that handles the display of created objects" 
    .... 
    perform action here 
    return render(request, template, context) 

def my_view(request): 
    .... 
    perform form action here 
    return redirect(view_to_redirect_to) 

더 읽기에 대한 herehere

당신은 역() 메서드는 리디렉션하고있는 뷰의 이름이 URL을 사용하여 리디렉션 바로 가기 위치 또는 키워드 인수 (들)을 통과 할 수 리디렉션 . 에서는 urls.py

from news import views 

url(r'^archive/$', views.archive, name='url_to_redirect_to') 

에서

views.py

from django.urls import reverse 

def my_view(request): 
    .... 
    return redirect(reverse('url_to_redirect_to', kwargs={'args_1':value})) 

역방향 Here

대해 자세히
관련 문제