簡體   English   中英

Django使用URL調度程序時沒有反向匹配錯誤

[英]Django no reverse match error while using url dispatcher

我有一個運行一些長期運行任務的應用程序,並且正在顯示用戶在特定頁面上進行的運行日志(表)。 頁面上的表中有一個結果位置,我希望該位置成為超鏈接,單擊該鏈接后,它會重定向到用戶可以看到結果的頁面。

我得到了:

NoReverseMatch: Reverse for 'past_run_results' with arguments '(u'1649103c-67d0-47f9-a085-401c02acff6a',)' not found. 1 pattern(s) tried: ['discovery-engine/past-runs/(P<task_id>[-\\\\w]+)$']

我不知道出什么問題了

/urls.py

[
url(r'^past-runs/$', views.past_run_log, name="previous_runs"),
url(r'^past-runs/(P<task_id>[-\w]+)$', views.past_run_results, name="past_run_results"),
]

/views.py

def past_run_log(request):
    past_fifty_runs = JobLog.objects.all().filter(user=request.user)[:50]
    context_dict = {"past_runs": past_fifty_runs}
    return render(request, 'website/previous_runs.html', context=context_dict)


def past_run_results(request, task_id):
    get_result = JobLog.objects.get(task_id=task_id)
    read_location = os.path.join(os.getcwd(), "results", get_result.result_location)
    with open(read_location) as f:
       result_data = json.load(f)

    if result_data:
        return render(request, 'website/previous_runs_results.html', context={"result": result_data})
    else:
        return render(request, 'website/previous_runs_results.html', context={"result": "No result found."})

/previous_runs.html

<div class="container-fluid">
    <div class="row">
        <div class="col-xs-12">
            <h1>History</h1>

            <table data-toggle="table" data-search="true" data-pagination="true" class="table-responsive">
                <thead>
                    <tr>
                        <th>Task Name</th>
                        <th>Username</th>
                        <th>Algortihm Name</th>
                        <th>Start Time</th>
                        <th>Duration (secs)</th>
                        <th>Status</th>
                        <th>Result</th>
                    </tr>
                </thead>
                <tbody>
                    {% for run in past_runs %}
                        <tr>
                            <td>{{run.task_name}}</td>
                            <td>{{run.user}}</td>
                            <td>{{run.algorithm}}</td>
                            <td>{{run.time_started}}</td>
                            <td>{{run.time_taken | floatformat:2}}</td>
                            <td>{{run.status}}</td>
                            <td><a href="{% url 'past_run_results' run.task_id %}">{{run.result_location}}</a></td>
                        </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>

task_id是唯一密鑰,例如1649103c-67d0-47f9-a085-401c02acff6a Django版本是1.11而python版本是2.7

您缺少(?P<task_id>[-\\w]+)問號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM