のDjangoストアのユーザーイメージモデルに登録ユーザーのイメージを格納するフィールドを作成しようとしています。 この画像の名前を変更し、media/users/10/photo.jpeg
のような別のユーザーディレクトリに保存する必要があります。モデルに
私は多くを検索しましたが、それをきれいに正しく行う方法がまだ見つかりませんでした。多くのサイトが同じ機能を必要とし、これはdjangoのドキュメントにあるはずですが、そうではありません。
のDjangoストアのユーザーイメージモデルに登録ユーザーのイメージを格納するフィールドを作成しようとしています。 この画像の名前を変更し、media/users/10/photo.jpeg
のような別のユーザーディレクトリに保存する必要があります。モデルに
私は多くを検索しましたが、それをきれいに正しく行う方法がまだ見つかりませんでした。多くのサイトが同じ機能を必要とし、これはdjangoのドキュメントにあるはずですが、そうではありません。
あなたは、これは私のプロジェクトから直接コードであるImageField
#models.py
import os
def get_image_path(instance, filename):
return os.path.join('photos', str(instance.id), filename)
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
profile_image = ImageField(upload_to=get_image_path, blank=True, null=True)
の「upload_to」オプションを使用します。アップロードされた画像は、あなたが望むもののために/MEDIA_ROOT/photos/<user_id>/filename
に行き、ちょうどここでdef get_image_path
に「ユーザー」と「写真」という文字列を変更ですFileField詳細下のドキュメントでそれについての小さなビット、
ユーザーモデルに外部キーを持つモデルを作成する必要があります。このモデルでは、ユーザーにimage fieldを割り当てることができます。ユーザーモデル自体を変更することはお勧めしません。
申し訳ありませんが、問題はモデルについてではなく、それは画像を保存する方法です。 – dragoon
任意のFileFieldまたはImageフィールドの動的アップロードパスを作成できます。モデルにupload_toのパスを返す関数を追加するだけです。 Djangoのドキュメントの例はhttps://docs.djangoproject.com/en/1.3/ref/models/fields/#filefield – Brandon
ですが、最高の答えではありませんが、投票の価値はありません... – nicorellius
私はあなたにdjango-photologueを調べることをお勧めします。すべての画像管理、アップロード、保存済みのdjangoアプリ!およそ
ますすべてのユーザーIDのディレクトリを作成していますか?どうして 'media/users/10.jpeg'?ちょうど質問:D –
保存する他のユーザー関連のコンテンツがある可能性があります:) – dragoon
ああ私が参照してください!私は私が助けることができるかどうか私に見せてくれる同様の問題に直面したと思います –