【问题标题】:Django redirect within methodDjango在方法内重定向
【发布时间】:2020-11-14 23:21:57
【问题描述】:

我有以下:

def wiki(request,title):
    entries = []
    entry = util.get_entry(title)
    if entry != None:
        markdowner = Markdown()
        entry = markdowner.convert(entry)
        entries.append(entry)

    return render(request, "encyclopedia/entry.html", {
        "title": title,
        "entries": entries,
    })

def search(request):

    search=request.GET.get('q')
    entries = util.list_entries()

    for entry in entries:
    
        if search == entry:
    #########################################
            entries = []
            entry = util.get_entry(search)
            markdowner = Markdown()
            entry = markdowner.convert(entry)
            entries.append(entry)
            return render(request, "encyclopedia/entry.html", {
                "title": search,
                "entries": entries,
            })
     #######################################

    possible=( [str for str in entries if
        (search in str )] )
    print(possible)
    return render(request, "encyclopedia/search.html")

如果搜索 == 条目:有什么方法可以重定向到或调用 wiki(request,title)? 从而能够消除哈希标记之间的代码?

【问题讨论】:

    标签: django redirect


    【解决方案1】:

    你可以让Django解析url并正确重定向:

    from django.shortcuts import redirect
    
    def search(request):
        search = request.GET.get('q')
        entries = util.list_entries()
    
        for entry in entries:
            if search == entry:
                return redirect(wiki, title=search)
    
        possible=( [str for str in entries if
            (search in str )] )
        print(possible)
        return render(request, 'encyclopedia/search.html')

    【讨论】:

    • 这太好了,谢谢。你能解释一下 def wiki(request,title) 中的请求是什么,以及为什么我在调用重定向时似乎不需要它吗?
    • @DCR:通过使用redirect,您返回一个 302 HTTP 响应,客户端发出一个新请求。对于 URL 解析,您永远不会传递请求,因为它不是 URL 的一部分。
    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2016-09-13
    • 2019-11-12
    • 2012-09-05
    • 2018-05-20
    • 1970-01-01
    相关资源
    最近更新 更多