Template Interactions & NoReverse Match Errors

14 views
Skip to first unread message

Timothy W. Cook

unread,
Dec 23, 2013, 5:38:13 AM12/23/13
to django...@googlegroups.com

(details below)
I have a dashboard view and from there I want to perform various activities inside a portion of the page. 
So, I built a dashboard base template to reuse.  From the main index.html I call a view with the ID of the user
(it is actually an internal role ID not the user id) which calls the dashboad that extends the dashboad base.
However, now when I attempt to call one of these other views without using any parameters I get a NoReverse match error.
For example, clicking on Add Project I get:

NoReverseMatch at /papers/add_project/
Reverse for 'mgr_dashboard' with arguments '()' and keyword arguments '{'pk': ''}' not found.
1 pattern(s) tried: ['mgr_dashboard/(?P<pk>\\d+)$']

What is wrong with my design approach?  mgr_dashboard is being called from mgr_db_base.html without a parameter,
even though it doesn't exist in add_project.html. It is already loaded.  I want to call some views with a cur_mgr.id and some without it.
If I remove the tab (in mgr_db_base) for mgr_dashboard I get the same error for searchresult_list.html

Thanks,
Tim

Code Details:
mgr_db_base.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  {% load staticfiles i18n %}
<head>
    <title>SRE Manager Dashboard</title>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    <link type="text/css" rel="stylesheet" href="{% static 'css/mgr_dashboard.css' %}" />
</head>
<body>
    <div id="main">

{% block tabs %}
        <div id="header">
            <div class='logo'><a href="{% url 'home' %}"><img src="{% static "img/logo_sre258x214_grey_bg.png" %}" height='50' width="50" alt="SRE Logo" /></a></div>
            <ul id="top-navigation">
                <li><a href="{% url 'mgr_dashboard' pk=cur_mgr.id %}" class="active">Projects</a></li>
                <li><a href="{% url 'searchresult_list' pk=cur_mgr.id %}" class="active">Search Results</a></li>
                <li><a href="{% url 'reviewers_list' pk=cur_mgr.id %}" class="active">Reviewer List</a></li>
            </ul>
        </div>
 <div>
{% endblock tabs %}

{% block content %}
{% endblock content %}
</div>
 </body>
</html>

mgr_dashboard.html:
{% extends "mgr_db_base.html" %}
{% load i18n %}
{% load static from staticfiles %}
{% block content %}
            
            {% block mgr_content %}
            {% block mgr_header %}
            <div id="middle">
            <div id="left-column">
                <p><a href="{% url 'add_project' %}" class="link">Add Projects</a></p>
                <p><a href="{% url 'add_searchresult' %}" class="link">Add Results Files</a></p>
                <p><a href="{% url 'add_reviewer' %}" class="link">Add Reviewers</a></p>                           
            </div>
            <div id="center-column">
                <div class="top-bar">
                    {% if trial %}
                       <div>Hello <span class="redfont">{{user.name}}</span> Your <span class="bluefont">FREE TRIAL</span> Expires: <span class="redfont">{{expires|date:"H:i Y-m-d"}}</span> </div>                   
                    {% else %}
                       <div>Hello <span class="redfont">{{user.name}}</span> Your Current Subscription Expires: <span class="redfont">{{expires|date:"H:i Y-m-d"}}</span> </div>
                    {% endif %}
                </div>
                <div class="select-bar">
                    <label>
                        <input type="text" name="textfield" />
                    </label>
                    <label>
                        <input type="submit" name="Submit" value="Search" />
                    </label>
                </div>
                {% endblock mgr_header %}
                {% block mgr_details %}
                <div class="table">
                    <table class="listing" cellpadding="2" cellspacing="2">
                        <tr>
                            <th>Project Name</th>
                            <th>Description</th>
                        </tr>
                        {% for p in projects %}
                        <tr>
                            <td class="style1"><a href="{% url 'papers_list' pk=p.id %}">{{p.prj_name}}</a></td>
                            <td>{{p.prj_descr}}</td>
                        </tr>
                       {% endfor %}
                    </table>
                </div>
                {% endblock mgr_details %}
               
                {% block mgr_details2 %}
 
                {% endblock mgr_details2 %}
            </div>
            {% endblock %}
            
        </div>
 {% endblock %}
 
 add_project.html:
 {% extends "mgr_db_base.html" %}
{% load i18n %}
{% load static from staticfiles %}
{% block content %}
            
            {% block mgr_content %}
            {% block mgr_header %}
            <div id="middle">
            <div id="left-column">
            </div>
            <div id="center-column">
                <div class="top-bar">
                  <p class="bluefont">Create a New Project</p>
                </div>
                <div class="select-bar">
                  
                </div>
                {% endblock mgr_header %}
                {% block mgr_details %}
                <div>
                    {% if form.errors %}
                       <p class="redfont">Invalid data. Please try again.</p>
                    {% endif %}
                    <form method="post" action="">
                      {% csrf_token %}
                      {{ form.as_p }}
                      <input type="submit" value="Save New Project" />
                    </form>
                </div>
                {% endblock mgr_details %}
               
                {% block mgr_details2 %}
 
                {% endblock mgr_details2 %}
            </div>
            {% endblock %}
            
        </div>
 {% endblock %}
 
 
papers/urls.py
"""The urls for the papers app."""
from django.conf.urls import patterns, url

from papers.views import *

urlpatterns = patterns(
    '',
    url(
        r'^add_searchresult/$',
        SearchResultCreateView.as_view(),
        name='add_searchresult'
    ),
    url(
        r'^searchresult_list/(?P<pk>\d+)$',
        SearchResultListView.as_view(),
        name='searchresult_list'
    ),

    url(
        r'^reviewers_list/(?P<pk>\d+)$',
        ReviewersListView.as_view(),
        name='reviewers_list'
    ),

    url(
        r'^searchresult_import/(?P<pk>\d+)$',
        SearchResultImportView.as_view(),
        name='searchresult_import'
    ),

    url(
        r'^papers_list/(?P<pk>\d+)$',
        PapersListView.as_view(),
        name='papers_list'
    ),

    url(
        r'^rvr_papers_list/(?P<pk>\d+)$',
        RvrPapersListView.as_view(),
        name='rvr_papers_list'
    ),

    url(
        r'^paper_details_mgr/(?P<pk>\d+)$',
        PaperDetailsMgrView.as_view(),
        name='paper_details_mgr'
    ),

    url(
        r'^add_project/$',
        ProjectCreateView.as_view(),
        name='add_project'
    ),

    url(
        r'^add_reviewer/$',
        ReviewerCreateView.as_view(),
        name='add_reviewer'
    ),

    url(
        r'^review_title/(?P<pk>\d+)$',
        ReviewTitleCreateView.as_view(),
        name='review_title'
    ),

    url(
        r'^review_abstract/(?P<pk>\d+)$',
        ReviewAbstractCreateView.as_view(),
        name='review_abstract'
    ),

    url(
        r'^review_fulltext/(?P<pk>\d+)$',
        ReviewFulltextCreateView.as_view(),
        name='review_fulltext'
    ),


)


--
MLHIM VIP Signup: http://goo.gl/22B0U
============================================
Timothy Cook, MSc           +55 21 94711995
MLHIM http://www.mlhim.org
Like Us on FB: https://www.facebook.com/mlhim2
Circle us on G+: http://goo.gl/44EV5
Google Scholar: http://goo.gl/MMZ1o
LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook

Timothy W. Cook

unread,
Dec 23, 2013, 4:23:54 PM12/23/13
to django...@googlegroups.com
SOLVED: by adding the cur_mgr ID to the get() kwargs.
Reply all
Reply to author
Forward
0 new messages