django2であらゆる種類のファイルをアップロードする方法

ロボット

私はDjango2を初めて使用します。Djangoにファイルをアップロードしようとしていました。これが私のコードです。

View.py

def addBook(request):
    checkName = AddBook.objects.filter(title=request.POST.get('title'))
    if not checkName:
        bookAdd = AddBook(
            title=request.POST.get('title'),
            slug=slugify(request.POST.get('title')),
            description=request.POST.get('description'),
            cover_image=request.FILES.get('cover_image'),
            file=request.FILES.get('file'),
            category=request.POST.get('category'),
            created_by=request.user.id,
        )
        bookAdd.save()
        messages.add_message(request, messages.INFO, 'Book Saved Successfully')
        return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
    else:
        messages.add_message(request, messages.INFO, 'Book Title Already Exists')
        return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

コメントに従って更新

これが私のテンプレートコードbookSave.htmlです

<form action="{% url 'addBook' %}" method="post" enctype="multipart/form-data">
                    {% csrf_token %}
                    <div class="modal-body">
                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs 12">
                            <div class="form-group ic-cmp-int">
                                <div class="form-ic-cmp">
                                    <i class="notika-icon notika-edit"></i>
                                </div>
                                <div class="nk-int-st">
                                    <input type="text" class="form-control input-sm" required="required" name="title"
                                           Placeholder="Title">
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-body">
                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                            <div class="form-group ic-cmp-int">
                                <div class="form-ic-cmp">
                                    <i class="notika-icon notika-mail"></i>
                                </div>
                                <div class="nk-int-st">
                                <textarea class="form-control input-sm" required="required" name="description"
                                          placeholder="Description"></textarea>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-body">
                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                            <div class="form-group ic-cmp-int">
                                <div class="form-ic-cmp">
                                    <i class="notika-icon notika-dollar"></i>
                                </div>
                                <div class="nk-int-st">
                                    <input type="file" name="cover_image" required="required" class="form-control input-sm">
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-body">
                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                            <div class="form-group ic-cmp-int">
                                <div class="form-ic-cmp">
                                    <i class="notika-icon notika-house"></i>
                                </div>
                                <div class="nk-int-st">
                                    <input type="file" name="file" required="required" class="form-control input-sm">
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-body">
                        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                            <div class="form-group ic-cmp-int">
                                <div class="form-ic-cmp">
                                    <i class="notika-icon notika-next"></i>
                                </div>
                                <div class="nk-int-st">
                                    <input type="text" name="category" required="required" class="form-control input-sm"
                                           Placeholder="Category">
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button class="btn btn-default">Save changes</button>
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>
                </form>

すべてを保存できますが、ファイルパスを保存し、ファイルをローカルに保存する必要があります。私は彼らのドキュメントを読みましたが、私を助けることはできません。この問題を解決するのを手伝ってください

ゾリー

モデルFileField、他のフィールドに加えて、次のようになります。

class AddBook(models.Model):
    # file will be uploaded to MEDIA_ROOT/uploads
    file = models.FileField(upload_to='uploads/')
    # or...
    # file will be saved to MEDIA_ROOT/uploads/2015/01/30
    file = models.FileField(upload_to='uploads/%Y/%m/%d/')

設定ファイルで、アップロードされたファイルをDjangoに保存するディレクトリへのフルパスとしてMEDIA_ROOTを定義する必要があります。(パフォーマンスのために、これらのファイルはデータベースに保存されません。)MEDIA_URLをそのディレクトリのベースパブリックURLとして定義します。このディレクトリがWebサーバーのユーザーアカウントによって書き込み可能であることを確認してください。

settings.pyで、次に設定する必要があります。

MEDIA_ROOT = '/home/foo/bar/yourproject/assets'

また、Djangoで静的ファイルストレージを調べて設定することもできます(「static」フォルダー以外)。

https://docs.djangoproject.com/en/2.0/howto/static-files/#configuring-static-files

Djangoでは、次のようなファイルオブジェクトを使用して任意のファイルを取得できます。

from django.core.files import File

# Open an existing file using Python's built-in open()
f = open('/path/to/mybookfile.pdf')
myfile = File(f)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

あらゆる種類のビデオファイルをpublic_htmlにアップロードします

分類Dev

Laravelのビューであらゆる種類のドキュメントファイルを表示する方法

分類Dev

Reactアプリのローカルファイルからあらゆる種類のデータをロードします

分類Dev

角度ファイルセーバーを使用してあらゆる種類のファイルをダウンロードする方法はありますか?

分類Dev

プログレッシブウェブアプリapk /エンタープライズデバイスで配布できるあらゆる種類のファイルを作成する方法

分類Dev

MVC5 ファイル アップロードでファイルの種類を制限する

分類Dev

AngularJSであらゆる種類の不変プロバイダーを作成する方法

分類Dev

Vertx - アップロード ファイルの種類を制限する

分類Dev

Webサービスにアップロードするファイルの種類を指定する方法

分類Dev

あらゆる種類の呼び出し可能ファイルのテンプレートでnullptrの関数ポインタを確認します

分類Dev

あらゆる種類のOSとブラウザで日時ローカルタイプをサポートする方法

分類Dev

uwpアプリであらゆる種類のファイルを開く(ファイルの関連付けなし)

分類Dev

コマンドラインからあらゆる種類のアーカイブファイルをすばやく抽出するにはどうすればよいですか?

分類Dev

コマンドラインからあらゆる種類のアーカイブファイルをすばやく抽出するにはどうすればよいですか?

分類Dev

ENOENT画像ピッカーライブラリを使用し、パスをあらゆる方法で変換するそのようなファイルやディレクトリはありません、Android画像のアップロードの問題

分類Dev

テキストファイルからあらゆる種類の電話番号を抽出します

分類Dev

Firebase Storageにアップロードする前に、画像ファイルの種類を知っている必要がありますか?

分類Dev

C#Jsonは、あらゆる種類のintである可能性のあるキーを使用して何かを逆シリアル化する方法

分類Dev

jSerialComライブラリであらゆる種類の割り込み要求をキャッチする方法は?

分類Dev

ajaxを使用してブートストラップモーダルで特定の種類のファイルをロードする方法

分類Dev

Rest in Springでアップロード中にファイルの種類、サイズを検証するにはどうすればよいですか?

分類Dev

Expressmulterさまざまなサイズのさまざまな種類のファイルをアップロードする方法

分類Dev

drupalモジュール内であらゆる種類のコンテンツを具体的に表示する方法

分類Dev

「at」コマンドはあらゆる種類のシェルスクリプトを実行できますか?

分類Dev

リンクからダウンロードするファイルの種類を確認する方法

分類Dev

Angular JSでアップロードファイルの種類を確認するにはどうすればよいですか?

分類Dev

シングルクリックでアンドロイドスタジオで不要なすべての種類のファイルを削除する方法

分類Dev

あらゆる種類の間隔をクリアする

分類Dev

ライブラリなしであらゆる種類のスクロールを検出するにはどうすればよいですか?

Related 関連記事

  1. 1

    あらゆる種類のビデオファイルをpublic_htmlにアップロードします

  2. 2

    Laravelのビューであらゆる種類のドキュメントファイルを表示する方法

  3. 3

    Reactアプリのローカルファイルからあらゆる種類のデータをロードします

  4. 4

    角度ファイルセーバーを使用してあらゆる種類のファイルをダウンロードする方法はありますか?

  5. 5

    プログレッシブウェブアプリapk /エンタープライズデバイスで配布できるあらゆる種類のファイルを作成する方法

  6. 6

    MVC5 ファイル アップロードでファイルの種類を制限する

  7. 7

    AngularJSであらゆる種類の不変プロバイダーを作成する方法

  8. 8

    Vertx - アップロード ファイルの種類を制限する

  9. 9

    Webサービスにアップロードするファイルの種類を指定する方法

  10. 10

    あらゆる種類の呼び出し可能ファイルのテンプレートでnullptrの関数ポインタを確認します

  11. 11

    あらゆる種類のOSとブラウザで日時ローカルタイプをサポートする方法

  12. 12

    uwpアプリであらゆる種類のファイルを開く(ファイルの関連付けなし)

  13. 13

    コマンドラインからあらゆる種類のアーカイブファイルをすばやく抽出するにはどうすればよいですか?

  14. 14

    コマンドラインからあらゆる種類のアーカイブファイルをすばやく抽出するにはどうすればよいですか?

  15. 15

    ENOENT画像ピッカーライブラリを使用し、パスをあらゆる方法で変換するそのようなファイルやディレクトリはありません、Android画像のアップロードの問題

  16. 16

    テキストファイルからあらゆる種類の電話番号を抽出します

  17. 17

    Firebase Storageにアップロードする前に、画像ファイルの種類を知っている必要がありますか?

  18. 18

    C#Jsonは、あらゆる種類のintである可能性のあるキーを使用して何かを逆シリアル化する方法

  19. 19

    jSerialComライブラリであらゆる種類の割り込み要求をキャッチする方法は?

  20. 20

    ajaxを使用してブートストラップモーダルで特定の種類のファイルをロードする方法

  21. 21

    Rest in Springでアップロード中にファイルの種類、サイズを検証するにはどうすればよいですか?

  22. 22

    Expressmulterさまざまなサイズのさまざまな種類のファイルをアップロードする方法

  23. 23

    drupalモジュール内であらゆる種類のコンテンツを具体的に表示する方法

  24. 24

    「at」コマンドはあらゆる種類のシェルスクリプトを実行できますか?

  25. 25

    リンクからダウンロードするファイルの種類を確認する方法

  26. 26

    Angular JSでアップロードファイルの種類を確認するにはどうすればよいですか?

  27. 27

    シングルクリックでアンドロイドスタジオで不要なすべての種類のファイルを削除する方法

  28. 28

    あらゆる種類の間隔をクリアする

  29. 29

    ライブラリなしであらゆる種類のスクロールを検出するにはどうすればよいですか?

ホットタグ

アーカイブ