フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
Zenn記事のDjango予約サイトシステム構築について
Django
Nakamura
2023/01/12 15:35

実現したいこと

https://zenn.dev/hathle/books/django-booking-book/viewer/02_accounts
上記の記事にある03プロフィール情報変更の際に、
一度アップロードした画像を管理画面からではなく、
アプリ上からクリアして削除したいのですがうまく動作しません

発生している問題

プロフィール画像をアップロードして
再度編集の際にクリアのチェックボックスにチェックを入れても
画像が削除されずに残ってしまう

ソースコード

自分で試したこと

管理画面からの削除は確認できたのと、
django-cleanupを導入して写真をほかのものに
更新したときに古いファイルは削除されるように
しました。やはりview側でなにかほかに処理を入れる必要があるのでしょうか?

補足情報

回答 4件
login
回答するにはログインが必要です
はる@講師
約3年前

クリアにチェックが入っていたら、views.pyで画像を削除する処理が必要になってきそうです。

https://shimi-dai.com/django-howto-delete-current-iamge-with-updateview-and-imagefield/

1
いいね
約3年前

ソースを見ないとわからないですが

以下の2点を確認してみてください

①pip install django-cleanup

②file setting.py に INSTALLED_APPS

・django_cleanup

or

・'django_cleanup.apps.CleanupConfig',

##参考に
以下のサイト、参考までに

更新時に古いファイルを削除する方法

https://h-memo.com/django-images/

1
いいね
約3年前

①pip install django-cleanup を実行する

②file setting.py にdjango_cleanup を追加しましたか?

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_cleanup',   # 画像削除
]

やはりview側でなにかほかに処理を入れる必要があるのでしょうか?

いいえ、Djangoは既に削除機能を準備されたので、View側は何もしなくてもいいです。

1
Nakamura
約3年前

回答ありがとうございます
質問した時点で現在ご指摘していただいた状態には
なっていて、ファイルを更新した際には古い画像は
削除できるようになっています。
編集画面からチェックボックスにクリアを入れて更新をしたときにだけ画像が削除できないという状況です。
うまく説明できなくて申し訳ないです

1