В случае, если это поможет кому-то еще, вот что я сделал. Когда пользователи просматривают, они будут ограничены папкой с изображениями, поскольку они относятся к этой части отчета. Аналогичным образом, загрузка изображения отправит его в ту же папку.
В двух словах, вы должны:
- Укажите URL-адреса CKEditor Uploader для вашей версии представлений
- Обновите виджет CKEditor Uploader с помощью соответствующих представлений формы
- Переопределите CKEditor Uploader
ImageUploadView
и browse
представлений, чтобы создать желаемый путь
Примеры
Обновлены пути URL CKEditor
path('myapp/<int:org_id>/report/<int:report_id>/finding/<int:finding_id>/image/upload', never_cache(ck_views.upload),
path('myapp/<int:org_id>/report/<int:report_id>/finding/<int:finding_id>/images', never_cache(ck_views.browse), name='ckeditor_browse'),
Обновление виджета
def get(self, request, *args, **kwargs):
context = {}
obj = self.get_object()
if obj is not None:
context['org'] = obj.report.org.id
form = FindingForm(instance=obj)
# Set image browse/upload path
image_kwargs = {
'finding_id': obj.id,
'org_id': obj.report.org.id,
'report_id': obj.report.id,
}
image_browse_path = reverse('ckeditor_browse', kwargs=image_kwargs)
image_upload_path = reverse('ckeditor_upload', kwargs=image_kwargs)
form.fields['description'].widget.config['filebrowserBrowseUrl'] = image_browse_path
form.fields['description'].widget.config['filebrowserUploadUrl'] = image_upload_path
context['form'] = form
return render(request, self.template_name, context)