Использование jqgrid в шаблоне Django: обратное для item-jqgrid-entity1 - PullRequest
0 голосов
/ 12 октября 2018

Попытка восстановить приложение Django, которое работало в 2014-2015 гг., Было выключено почти на 3 года и теперь не желает сотрудничать.

Mac OS X el Capitan 10.11.6 Python 3.6 (также пробовал3.4) Django 1.8.3

Короче говоря, каким образом нотация (в шаблоне) {% url 'item-jqgrid-entity1' pk=original.id %} соединяется с моделями django Item и Entity1 БЕЗ указания item-jqgrid-entity1 в url.py?Я получаю

Реверс для 'item-jqgrid-entity1' с аргументами '()' и аргументами с ключевыми словами '{' pk ': 123}' не найден.0 шаблон (ов) пытались: []

, и раньше он работал как-то.Если я введу соответствующий URL в urls.py, он будет работать, но я хочу узнать, как он работал без него.

Для данной модели (Item) шаблон по умолчанию change_form.html был переопределен.Пользовательский выглядит так:

{% extends "admin/change_form.html" %}
{% load admin_urls %}
.
.
    var searchable_columns = {
        alteration_type: {
            searchoptions: { 
                dataUrl: '{% url 'item-jqgrid-entity1' pk=original.id %}'
            }
        },
        disease: {
            searchoptions: { 
                dataUrl: '{% url 'item-jqgrid-entity2' pk=original.id %}'
            }
        },
     }

..

$(document).ready( function () {

    $("#table_{{ original.id }}").jqGrid({
        autowidth: true,
        height: 300,
        hidegrid: false,

        // double click handler
        ondblClickRow: function(rowid, iRow, iCol, e) {
            // rowid is object ID i want to edit

            // mimics showRelatedObjectPopup()
            // in django's RelatedObjectLookups.js
            href = '{% url 'admin:some real url here' %}' + rowid + '/?_to_field=id&_popup=1';
            $('div.alert').remove();
            var win = window.open(href, 
                    'id_drug', 
                    'height=500,width=800,resizable=yes,scrollbars=yes');
            win.focus();
            return false;
        },
        // #25: workflow: marking edited rows
        gridComplete: function () {
            for (var i = 0; i < rowsToColor.length; i++) {
                $("#" + rowsToColor[i]).find("td").css("background-color", "#dff0d8");
                $("#" + rowsToColor[i]).find("td").css("color", "#468847");
            }
            // this will overwrite green ones, too.
            for (var i = 0; i < incompleteRowsToColor.length; i++) {
                $("#" + incompleteRowsToColor[i]).find("td").css("background-color", "#fcf8e3");
                $("#" + incompleteRowsToColor[i]).find("td").css("color", "#b94a48");
            }
            // this will overwrite green and yellow ones, too.
            for (var i = 0; i < unworthyRowsToColor.length; i++) {
                $("#" + unworthyRowsToColor[i]).find("td").css("background-color", "#f2dede");
                $("#" + unworthyRowsToColor[i]).find("td").css("color", "#b94a48");
            }
            // commented lines are bold.
            for (var i = 0; i < commentedRowsToBold.length; i++) {
                $("#" + commentedRowsToBold[i]).find("td").css("font-weight", "bold");
            }
        },

        datatype: "json",
        colModel: [
           { 
               label: 'Entity1', 
               name: 'entity1', 
               width: 45,

               // search options
               stype: 'select',
               searchoptions: searchable_columns.entity1.searchoptions,
                editable: true,
                edittype: 'select',
                editoptions: {
                    dataUrl: '{% url 'editdata-AllEntity1' %}',

                },
           },
            { 
                label: 'Entity2', 
                name: 'entity2', 
                width: 75,
                // search options
                stype: 'select',
                searchoptions: searchable_columns.entity2.searchoptions,
                 editable: true,
                edittype: 'select',
                 editoptions: {
                     dataUrl: '{% url 'editdata-allEntity2' %}',

                 },
        ],
        viewrecords: true, // show the current page, data rang and total records on the toolbar
        caption: "{{ original.pk }}: {{ original }}",
        pager: "#tablePager_{{ original.id }}",
      }
    });

    $('#table_{{ original.id }}').jqGrid('filterToolbar');

    $('#table_{{ original.id }}').navGrid("#tablePager_{{ original.id }}", {                
        search: false, // show search button on the toolbar
        add: false,
        edit: false,
        del: false,
        refresh: true,  position: "left", cloneToTop: true 
    },        
...