これは私のmodels.pyです:
def get_profileImage_file_path(instance, filename):
return os.path.join('%s/uploadedPhotos/profileImages' % instance.user_id, filename)
class UserExtended(models.Model):
user = models.OneToOneField(User)
profileImage = models.ImageField(upload_to=get_profileImage_file_path, default='/static/images/myProfileIcon.png')
ここで、デフォルトの画像 (静的フォルダーにある) を、
get_profileImage_file_path
関数。私の settings.py では、media_root と media_URL を次のように定義しました。
MEDIA_ROOT = '/home/username/Documents/aSa/userPhotos'
MEDIA_URL = '/media/'
何らかの理由で、テンプレートとテンプレートでユーザー オブジェクトを渡すと、次のようになります。
<img class='profilePic' src="{{ user.userextended.profileImage.url }}" height='120px' alt="" />
画像が表示されず、クロムで「要素の検査」セクションを開くと、次のような 404 エラーが表示されます。
GET http://127.0.0.1:8000/home/username/Documents/djcode/aS/aSa/static/images/myProfileIcon.png 404 (NOT FOUND)
それが画像への正しいファイルパスであっても。(ファイルパス全体を提供している理由もわかりません。/ static /から開始するだけではないでしょうか?「ソースを表示」しても、URL全体がそこにあります。)そのようにするにはどうすればよいですか静的フォルダーにあるデフォルトの画像は、
get_profileImage_file_path
関数?