首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django中重定向视图

问如何在Django中重定向视图
EN

Stack Overflow用户
提问于 2017-03-06 05:20:28
回答 2查看 31.8K关注 0票数 13

这是为我在Django中发布的应用程序编写的视图。问题是,在填写更新表单并提交它之后,成功地发生了。但是它给用户造成了混乱,因为那里有相同的HTML页面,我如何重定向到更新后的对象?

代码语言:javascript
复制
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)

ThankYou。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-06 05:27:20

您可以使用http快捷方式中的redirect。

代码语言:javascript
复制
from django.shortcuts import redirect

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

这是官方文档的link。

票数 22
EN

Stack Overflow用户

发布于 2017-03-06 06:49:40

正如@mdegis所建议的,您可以使用Django重定向函数来重定向到另一个视图或url。

代码语言:javascript
复制
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)

阅读有关重定向here和here的更多信息

您可以使用reverse()方法和要重定向到的视图的命名url将位置参数或关键字参数传递给重定向快捷方式。

在urls.py中

代码语言:javascript
复制
from news import views

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

在views.py中

代码语言:javascript
复制
from django.urls import reverse

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

有关反向Here的更多信息

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42614172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档