0

ユーザーがサイトの 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 を渡すにはどうすればよいですか?

私の主張が理解されることを願っています。さらに情報が必要な場合は、コメントでお知らせください。それらを追加します. ありがとう

4

1 に答える 1

0

config.filebrowserUploadUrl に追加します。

config.filebrowserUploadUrl = "/upload.php?docid=" + docid;
于 2015-07-05T10:38:38.043 に答える