🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1170閲覧

imagekitでの画像アップロードができない。

hood

総合スコア351

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/21 02:47

編集2019/10/21 02:53

###imagekitでの画像アップロードができない。

題目通りです。画像の部分だけ記しますが、imagekitを使うため下記のようなモデルを私は改造しました。

(改造前)

class CustomUser(AbstractUser): icon = models.ImageField(verbose_name='アイコン', upload_to='icon/', default='sugar.png')

(改造後)

class CustomUser(AbstractUser): origin = models.ImageField(verbose_name='アイコン', upload_to='icon/', default='sugar.png') icon = ImageSpecField(source="origin", processors=[ResizeToFill(250, 250)], format='PNG' )

そしてアップロードの実装の部分。私はさくっとUpdateViewを使ってこのように定義しました。

@method_decorator(login_required, name='dispatch') class ProfileSetting(UpdateView): model = get_user_model() form_class = ProfileSettingForm template_name = 'users/profile_setting.html' success_url = reverse_lazy('home') # 作った人のみアクセス化 def get_object(self, *args, **kwargs): return get_user_model().objects.get(pk=self.request.user.pk)

ProfileSettingFormは以下です。(アイコンの部分だけ抜粋しています。)

class ProfileSettingForm(UserChangeForm): # アイコンボタンの文字変える。imgを出す。 icon = forms.ImageField(label='アイコン', required=False, widget=forms.FileInput) class Meta: model = get_user_model() fields = ['username', 'icon', 'description']

しかしこれで画像をアップロードしても、なにも変化が起きませんでした。ディレクトリの構成もCACHEの下に画像が保存されると聞いていたのですが、デフォルトで指定したsugar.pngが謎のimagesディレクトリの下に配置されていました
イメージ説明

これはなぜでしょう?imagekitでの画像アップロードするのに見落としている部分が全くわかりません。
なにか間違っているところがありましたら、ご教授願いたいです・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

あきらめてimagekitを廃したので、質問を締め切らせていただきます。

投稿2019/10/21 06:03

hood

総合スコア351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問