Skip to main content
 首页 » 编程设计

python之get_do_sorting_url 上的 django-admin-sortable NoReverseMatch 错误

2024年08月29日37tintown

我正在尝试使用 django-admin-sortable 但是一旦我保存了一个对象并尝试在 Admin 界面中加载它,我在 adminsortable/的第 43 行得到了一个 NoReverseMatch edit_inline/tabular.html 模板。

我真的不知道我做错了什么。

我正在使用 Python 2.7 和 Django 1.4。我从 pip 安装了 django-admin-sortable。

下面是堆栈跟踪输出。

Environment:

Request Method: GET 
Request URL: http://127.0.0.1:8000/admin/reports/reportsuser/7/ 
 
Django Version: 1.4.2 
Python Version: 2.7.3 
Installed Applications: 
('django.contrib.auth', 
 'django.contrib.contenttypes', 
 'django.contrib.sessions', 
 'django.contrib.sites', 
 'django.contrib.messages', 
 'django.contrib.staticfiles', 
 'django.contrib.admin', 
 'django.contrib.admindocs', 
 'functional_tests', 
 'reports', 
 'adminsortable') 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
 'django.contrib.sessions.middleware.SessionMiddleware', 
 'django.middleware.csrf.CsrfViewMiddleware', 
 'django.contrib.auth.middleware.AuthenticationMiddleware', 
 'django.contrib.messages.middleware.MessageMiddleware') 
 
 
Template error: 
In template /home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/adminsortable/templates/adminsortable/edit_inline/tabular.html, error at line 43 Reverse for 'reports_do_sorting' with arguments '()' and keyword arguments '{'model_type_id': 44L}' not found. 
   33 :           {% spaceless %} 
 
 
   34 :           {% for fieldset in inline_admin_form %} 
 
 
   35 :             {% for line in fieldset %} 
 
 
   36 :               {% for field in line %} 
 
 
   37 :                 {% if field.is_hidden %} {{ field.field }} {% endif %} 
 
 
   38 :               {% endfor %} 
 
 
   39 :             {% endfor %} 
 
 
   40 :           {% endfor %} 
 
 
   41 :           {% endspaceless %} 
 
 
   42 :           {% if inline_admin_form.original %} 
 
 
   43 :           <input type="hidden" name="admin_sorting_url" value=" {% get_do_sorting_url inline_admin_form.original %} " /> 
 
 
   44 :           {% endif %} 
 
 
   45 :         </td> 
 
 
   46 :         {% for fieldset in inline_admin_form %} 
 
 
   47 :           {% for line in fieldset %} 
 
 
   48 :             {% for field in line %} 
 
 
   49 :               <td class="{{ field.field.name }}"> 
 
 
   50 :               {% if field.is_readonly %} 
 
 
   51 :                   <p>{{ field.contents }}</p> 
 
 
   52 :               {% else %} 
 
 
   53 :                   {{ field.field.errors.as_ul }} 
 
 
Traceback: 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
  136.                     response = response.render() 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/response.py" in render 
  104.             self._set_content(self.rendered_content) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/response.py" in rendered_content 
  81.         content = template.render(context) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 
  140.             return self._render(context) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in _render 
  134.         return self.nodelist.render(context) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 
  823.                 bit = self.render_node(node, context) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 
  74.             return node.render(context) 
File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" 

in render 123. return compiled_parent._render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render 123. return compiled_parent._render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render 62. result = block.nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render 62. result = block.nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render 185. nodelist.append(node.render(context)) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render 166. return self.render_template(template, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render_template 137. output = template.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 140. return self._render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render 185. nodelist.append(node.render(context)) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render 281. return nodelist.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 823. bit = self.render_node(node, context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/template/base.py" in render 1107. return func(*resolved_args, **resolved_kwargs) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/adminsortable/templatetags/adminsortable_tags.py" in get_do_sorting_url 40. return reverse('admin:%s_do_sorting' % obj._meta.app_label, kwargs={'model_type_id': obj.model_type_id() }) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse 476. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) File "/home/josh/.virtualenvs/vvreports/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix 396. "arguments '%s' not found." % (lookup_view_s, args, kwargs))

Exception Type: NoReverseMatch at /admin/reports/reportsuser/7/ 
Exception Value: Reverse for 'reports_do_sorting' with arguments '()' and keyword arguments '{'model_type_id': 44L}' not found. 

请您参考如下方法:

新版本django-admin-sortable - 1.3.6 修复了传递给 get_do_sorting_url 模板标签的值中的错误。

[编辑]

因此,在与原始发帖人合作后,结果发现这是一个 known issue在 django-admin-sortable 中:内联当前无法在未继承自 sortable 的模型中进行排序。