我试图使用任何类型的嵌套内联来使用python 3和django 1.8。
我尝试了django超级内联,并没有真正使它们嵌套,它们只是出现在彼此旁边。
我目前正在尝试使用django-nested-admin,我在这种模式搜索中找不到页面错误:
^ ^ $ [name =' browse']
^ admin / ^ server-data.js $ [name =' nesting_server_data']
浏览指向一组单独网址的链接,这不会加载任何管理链接。
urls.py:
from django.conf.urls import include, url
import nested_admin
urlpatterns = [
url(r'^', include('flightdb.urls')),
url(r'^admin/', include('nested_admin.urls')),
]
连接到/ admin /获取404未找到错误。
任何有关页面无法加载或帮助嵌套内联工作的更好方法的帮助都将不胜感激。
答案 0 :(得分:0)
模式r'^'
将匹配任何与r'^admin/'
匹配的内容。 Django从urlpatterns
的开头开始执行URL匹配,并一直进行,直到找到第一个匹配。因此,在这种情况下,应该在管理员中的内容匹配'^'
flightdb.urls
,即urlpatterns = [
url(r'^admin/', include('nested_admin.urls')),
url(r'^', include('flightdb.urls')),
]
将无法找到它们。您可以通过重新排序网址来解决此问题,如下所示:
context = {
'title': _('Add %s') % force_unicode(opts.verbose_name),
'adminform': adminForm,
'is_popup': (IS_POPUP_VAR in request.POST or
IS_POPUP_VAR in request.GET),
'show_delete': False,
'media': mark_safe(media),
'inline_admin_formsets': inline_admin_formsets,
'errors': helpers.AdminErrorList(form, formsets),
'root_path': reverse('admin:index'),
'app_label': opts.app_label,
}
现在,在其他顶级网址之前检查管理员是否匹配。
编辑:我怀疑你的问题来自你的url模式中使用“admin”来到除默认Django管理包之外的某个地方。我在django-nested-admin的源代码中进行了一些搜索,特别是在这里遇到了一些问题: https://github.com/theatlantic/django-nested-admin/blob/master/nested_admin/options.py特别要看第275行:reverse('admin:index')
这里有一个admin
的电话。这需要解决通常的admin
路径才能工作。当你像你一样定义你的网址时,你遇到的问题是url(r'^nested_admin/', include('nested_admin.urls')),
现在不是django-nested-admin期望看到的默认值。
也许尝试一个不是“管理员”的不同网址模式,例如他们的文档建议的那个:
reverse
这样,django-nested-admin包的内部使用的<% @categories.each do |category| %>
<div class="page-row">
<h4><%= category.id %></h4>
<% for page in category.pages do %>
<p><%= page.title %></p>
</div>
<%end%>
就可以了。
答案 1 :(得分:0)
我遇到了同样的问题。这就是我的settings.py和urls.py看起来像
settings.py
INSTALLED_APPS = [
'nested_admin',
'django.contrib.admin',
# ...
]
urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^nested_admin/', include('nested_admin.urls')),
#...
]
现在,请不要转到yourproject.com/nested_admin,而是转到yourproject.com/ admin 。
你仍然需要include for nested_admin,否则它将无效。