直接链接到Wagtail模型管理员视图

Ben*_*els 1 python django wagtail

我已成功使用Wagtail wagtail.contrib.modeladmin制作了可从Wagtail管理员进行编辑的常规Django模型。我想从模板超链接到modeladmin的“创建”和“编辑”视图。我可以用来引用这些视图的URL“名称”是什么?似乎没有urls模块,wagtail.contrib.admin也没有任何文档。

这是我的directory应用程序models.py

from django.db import models

class Organisation(models.Model):
    title = models.CharField(max_length=255)
    logo = models.ImageField(upload_to='logos', blank=True)
    ...
Run Code Online (Sandbox Code Playgroud)

我的项目是urls.py

from django.conf.urls import include, url

urlpatterns = [
    url(r'^admin/', include(wagtailadmin_urls)),
    ...
    url(r'^directory/', include('directory.urls')),
]
Run Code Online (Sandbox Code Playgroud)

Ben*_*els 5

URL名称将是以下形式,其中的[action]是一个indexcreateeditdeleteinspectchoose_parent

[app_label]_[model_name]_modeladmin_[action]
Run Code Online (Sandbox Code Playgroud)

例如:

  • {% url 'directory_organisation_modeladmin_index' %}
  • {% url 'directory_organisation_modeladmin_create' %}
  • {% url 'directory_organisation_modeladmin_edit' instance_pk=37 %}
  • {% url 'directory_organisation_modeladmin_delete' instance_pk=37 %}
  • {% url 'directory_organisation_modeladmin_inspect' instance_pk=37 %}
  • {% url 'directory_organisation_modeladmin_choose_parent' %}

由于提供的URLConf不包含的名称空间argement include(),因此不需要名称空间。

与Django的内置Admin相似,Wagtail ModelAdmin.get_admin_urls_for_registration()借助诸如之类的帮助程序在中动态生成这些URL AdminURLHelper.get_action_url_name()