Django:在 ModelAdmin.Media.js 中反转
Django: reverse in ModelAdmin.Media.js
这是我的url的配置。项目的主要urls.py是:
urlpatterns = patterns('',
url(r'^plugins/', include('plugins.urls')),
url(r'^admin/', include(admin.site.urls))
)
从这里我包括以下插件 urls:
urlpatterns = patterns('',
url(r'^jsconfig/', 'plugins.views.js_config', name='plugins_js_config'),
)
问题出在插件 ModelAdmin 中,我尝试将 url 动态包含到 returns 一个 text/javascript
页面
的视图中
class PluginConfigurationAdmin(admin.ModelAdmin):
class Media:
js = (reverse('plugins_js_config'),)
admin.site.register(PluginConfiguration, PluginConfigurationAdmin)
当我尝试加载任何管理页面时,我收到以下错误:
NoReverseMatch at /admin/
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': u'plugins'}' not found. 1 pattern(s) tried: [u'admin/(?P<app_label>auth)/$']
但是如果我硬编码已解决的 url,它会按预期工作:
class Media:
js = ('/plugins/jsconfig/',)
为什么我无法在 admin.py 页面中进行反向操作?谢谢
使用 reverse_lazy()
而不是普通的 reverse()
。在定义 ModelAdmin
URLConf 时尚未加载。
这是我的url的配置。项目的主要urls.py是:
urlpatterns = patterns('',
url(r'^plugins/', include('plugins.urls')),
url(r'^admin/', include(admin.site.urls))
)
从这里我包括以下插件 urls:
urlpatterns = patterns('',
url(r'^jsconfig/', 'plugins.views.js_config', name='plugins_js_config'),
)
问题出在插件 ModelAdmin 中,我尝试将 url 动态包含到 returns 一个 text/javascript
页面
class PluginConfigurationAdmin(admin.ModelAdmin):
class Media:
js = (reverse('plugins_js_config'),)
admin.site.register(PluginConfiguration, PluginConfigurationAdmin)
当我尝试加载任何管理页面时,我收到以下错误:
NoReverseMatch at /admin/
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': u'plugins'}' not found. 1 pattern(s) tried: [u'admin/(?P<app_label>auth)/$']
但是如果我硬编码已解决的 url,它会按预期工作:
class Media:
js = ('/plugins/jsconfig/',)
为什么我无法在 admin.py 页面中进行反向操作?谢谢
使用 reverse_lazy()
而不是普通的 reverse()
。在定义 ModelAdmin
URLConf 时尚未加载。