首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Django重定向函数返回到同一个页面

为什么Django重定向函数返回到同一个页面
EN

Stack Overflow用户
提问于 2022-10-05 12:09:19
回答 1查看 56关注 0票数 0

我有一个网站,其中有不同的团体。一旦您单击其中一个组,您将被重定向到该组的详细信息页。此单击通过post方法进行,其中将组的名称发送到服务器。在这里,我检查它是否是POST方法,因为我在页面上使用了几个,所以我还检查了哪个是‘’。然后,组的名称存储在会话中(这对于以后的函数非常重要)。之后,应该将其重定向到详细信息页。然而,我总是以同样的方式结束。在控制台中,我可以看到详细信息页正在加载,但我被以某种方式重定向到主页。

这些是我的网址:

代码语言:javascript
复制
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index, name='home'),
    path('send', send, name='send'),
    path('datasheet/', datasheet, name='datasheet'),
    path('datasheet/intents/', intents, name='intents'),
]

数据表是列出所有组并可单击详细信息页的页面。

以下是我的意见:

代码语言:javascript
复制
def datasheet(request):

    # error handling
    if 'error' not in request.session:
        error = "no_error"
    else:
        error = request.session['error']
        del request.session['error']

    # post methods
    if request.method == 'POST':


        # show group intents
        if request.POST['post-function'] == 'details-group':
            group_name = request.POST['showIntents']
            request.session['group'] = group_name
            print(request.session['group'])
            return redirect('/intents/')

    return render(request, './views/datasheet.html', {"error": error})

def intents(request):
    print("testing, if site opens")
    return render(request, './views/intents.html')

产出如下:

代码语言:javascript
复制
[05/Oct/2022 12:26:48] "POST /datasheet/ HTTP/1.1" 302 0
[05/Oct/2022 12:26:48] "GET /datasheet/intents/ HTTP/1.1" 200 4832
[05/Oct/2022 12:26:48] "GET /datasheet/ HTTP/1.1" 200 3393

补充:我想我已经找到了原因,但我不知道如何解决它。下面是我的邮政电话。我在那里重新加载了页面。也许这就是我呆在这页的原因。但是如果我现在删除这个命令,什么都不会发生。页面没有重新加载,我也没有被重定向。

代码语言:javascript
复制
let group_button = document.getElementsByClassName("groups-details");
    // for every Group there is a button to click --> show details
    for(let i = 0; i<group_button.length; i++){
        group_button[i].onclick = function(){
            if(group_button[i].type == "button"){

                show_intents = group_button[i].value
                let formData = new FormData();

                formData.append('post-function', "details-group");
                formData.append('showIntents', show_intents);
                formData.append('csrfmiddlewaretoken', token);
                fetch('/datasheet/', {
                    method: 'POST',
                    body: formData,
                }).then( () => {
                    window.location.reload();
                });
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2022-10-05 12:59:05

尝试:

代码语言:javascript
复制
return redirect('/datasheet/intents/')

或:

代码语言:javascript
复制
return redirect('intents')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73960124

复制
相关文章

相似问题

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