在管理视图中获取 DocumentChooserPanel
Getting the DocumentChooserPanel in an admin view
我创建了一个脚本来读取 Excel 文档、解析数据并在 Wagtail 中创建和保存新的 Page
实例。
当用户上传 Excel sheet、通过 DocumentChooserPanel
选择它并点击 运行.
我已经按照官方 Wagtail hooks guide 创建了新的管理视图,并将其与扩展 wagtailadmin/base.html
的模板连接起来。我不确定如何调用 DocumentChooserPanel
并将其显示在我的模板中。我也不完全确定如何使用所选文档并使其与我的脚本交互。关于我应该如何去做的任何指示?或者 resources/tutorials 我可以使用?
wagtailadmin/data_upload.html
{% extends "wagtailadmin/base.html" %}
{% block titletag %}Upload Data{% endblock %}
{% block content %}
<header class="merged nice-padding">
<div class="row row-flush">
<div class="col12">
<h1>Data Upload Centre</h1>
<h3>Upload data here based on Excel spreadsheet templates.</h3>
</div>
</div>
</header>
{% endblock %}
wagtail_hooks.py
@hooks.register('register_admin_menu_item')
def register_data_menu_item():
return MenuItem('Data Upload', reverse('data_upload_view'), classnames='icon icon-code', order=10000)
def data_upload_view(request):
template = "wagtailadmin/data_upload.html"
context = {}
return render(request, template, context)
@hooks.register('register_admin_urls')
def urlconf_time():
return [
url(r'^data-upload-centre/$', data_upload_view, name='data_upload_view'),
]
为清楚起见,复制评论中找到的解决方案作为答案。
DocumentChooserPanel
可能不适合这里。据我了解,您不需要保存文档(选择器所做的),而只需对其进行处理。我认为,香草 FileField
字段可能更合适。 Django 文档有一个关于如何做 basic file upload.
的例子
FWIW,根据文件大小,通过 FileField
上传的文档将为 kept in memory or saved as a temporary file。
我创建了一个脚本来读取 Excel 文档、解析数据并在 Wagtail 中创建和保存新的 Page
实例。
当用户上传 Excel sheet、通过 DocumentChooserPanel
选择它并点击 运行.
我已经按照官方 Wagtail hooks guide 创建了新的管理视图,并将其与扩展 wagtailadmin/base.html
的模板连接起来。我不确定如何调用 DocumentChooserPanel
并将其显示在我的模板中。我也不完全确定如何使用所选文档并使其与我的脚本交互。关于我应该如何去做的任何指示?或者 resources/tutorials 我可以使用?
wagtailadmin/data_upload.html
{% extends "wagtailadmin/base.html" %}
{% block titletag %}Upload Data{% endblock %}
{% block content %}
<header class="merged nice-padding">
<div class="row row-flush">
<div class="col12">
<h1>Data Upload Centre</h1>
<h3>Upload data here based on Excel spreadsheet templates.</h3>
</div>
</div>
</header>
{% endblock %}
wagtail_hooks.py
@hooks.register('register_admin_menu_item')
def register_data_menu_item():
return MenuItem('Data Upload', reverse('data_upload_view'), classnames='icon icon-code', order=10000)
def data_upload_view(request):
template = "wagtailadmin/data_upload.html"
context = {}
return render(request, template, context)
@hooks.register('register_admin_urls')
def urlconf_time():
return [
url(r'^data-upload-centre/$', data_upload_view, name='data_upload_view'),
]
为清楚起见,复制评论中找到的解决方案作为答案。
DocumentChooserPanel
可能不适合这里。据我了解,您不需要保存文档(选择器所做的),而只需对其进行处理。我认为,香草 FileField
字段可能更合适。 Django 文档有一个关于如何做 basic file upload.
FWIW,根据文件大小,通过 FileField
上传的文档将为 kept in memory or saved as a temporary file。