我不知道为什么在尝试访问模型的管理change_list
页面时出现此错误mymodel
:
NoReverseMatch at /admin/myapp/mymodel/
Reverse for 'myapp_mymodel_change' with arguments '(u'',)' and keyword arguments '{}' not found.
Error during template rendering
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/change_list.html, error at line 91
84 <form id="changelist-form" action="" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %}>{% csrf_token %}
85 {% if cl.formset %}
86 <div>{{ cl.formset.management_form }}</div>
87 {% endif %}
88
89 {% block result_list %}
90 {% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %}
91 {% result_list cl %}
92 {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
93 {% endblock %}
94 {% block pagination %}{% pagination cl %}{% endblock %}
95 </form>
只有在我的远程服务器(Python 2.7.2+,Django 1.5.1)上部署时,我的本地运行服务器(Python 2.7.5,Django 1.5.1)上才会发生错误。有趣的是,只有一个特定模型受此影响——我可以change_list
毫无问题地访问所有其他模型的页面。管理区域的其余部分也可以正常工作。
关于错误的类似问题的答案NoReverseMatch
没有多大帮助,因为它发生在管理员中,而不是我自己的代码中。有谁知道从哪里开始寻找?
编辑:
我有一些自定义list_display
字段,现在我将其注释掉以进行测试。他们似乎要为这个NoReverseMatch
错误负责。现在我得到了另一个错误:
AttributeError at /admin/myapp/mymodel/
'NoneType' object has no attribute '_meta'
然后我剥离了所有不必要的东西。现在这是我的完整admin.py
:
from django.contrib import admin
from myproject.myapp.models import *
class MymodelAdmin(admin.ModelAdmin):
list_display = ['email', 'user', 'is_active', 'first_used']
date_hierarchy = 'first_used'
ordering = ['-first_used']
list_filter = ['is_active', 'first_used', 'user']
admin.site.register(Mymodel, MymodelAdmin)
在我的本地机器上它仍然可以完美运行。