ユーザーがサイトの Web ページにリッチ テキストを入力するために django-ckeditor を使用しています。サイトのすべての Web ページは、一意の ID を持つドキュメントを表します。
たとえば、2 つの別個のドキュメントには、次のような URL を持つ 2 つの Web ページがあります。
example.com/documents/doc1 and example.com/documents/doc2
これらの 2 つの Web ページにはそれぞれ複数の CKEDITOR があります。ユーザーが Web ページの CKEDITOR を介して画像をアップロードするときに、example.com/documents/doc1 を別のディレクトリに移動する必要があります。
/media/uploads/doc1/
また、ウェブページ example.com/documents/doc2 の CKEDITOR を介してアップロードされた画像は、別のディレクトリに移動する必要があります -
/media/uploads/doc2/
ここで問題が発生します.django-ckeditorモジュールのviews.pyのアップロードビューメソッドで-
def post(self, request, **kwargs):
"""
Uploads a file and send back its URL to CKEditor.
"""
# Get the uploaded file from request.
upload = request.FILES['upload']
#Verify that file is a valid image
backend = image_processing.get_backend()
try:
backend.image_verify(upload)
except utils.NotAnImageException:
return HttpResponse("""
<script type='text/javascript'>
alert('Invalid image')
window.parent.CKEDITOR.tools.callFunction({0});
</script>""".format(request.GET['CKEditorFuncNum']))
# Open output file in which to store upload.
upload_filename = get_upload_filename(upload.name, request.user)
saved_path = default_storage.save(upload_filename, upload)
if backend.should_create_thumbnail(saved_path):
backend.create_thumbnail(saved_path)
url = utils.get_media_url(saved_path)
# Respond with Javascript sending ckeditor upload url.
return HttpResponse("""
<script type='text/javascript'>
window.parent.CKEDITOR.tools.callFunction({0}, '{1}');
</script>""".format(request.GET['CKEditorFuncNum'], url))
upload_filename はget_upload_filename(upload.name,request.user)として定義されます
filename と request.user をパラメーターとして取り、ファイルをユーザー固有のフォルダーに保存します。docid を使用してドキュメント中心のフォルダーに画像を保存できるように、URL から投稿リクエストに docid を渡すにはどうすればよいですか?
私の主張が理解されることを願っています。さらに情報が必要な場合は、コメントでお知らせください。それらを追加します. ありがとう