2016-05-19 5 views
0

私はそれらのような疑問がたくさんあることを知っています。私はそれらをすべて読んで、すべてを試みましたが、何も私の問題を解決しませんでした。Django STATIC_URLは空ですが、画像は表示されません

私はブログのようなものをDjangoに書いていますが、もちろん私はユーザーに写真を見せたいと思います。 写真は/static/users/<username>/<image>に保存されています。私は、HTML

{% load static from staticfiles %} 
<img src="{% static comment.author.picture.url %}" 
             width="70px" height="70px"> 

と私はビュー

@login_required 
def trip_one(request, pk): 
    trip = get_object_or_404(Trip, pk=pk) 
    if request.method == 'POST': 
     form = CommentForm(request.POST) 
     if form.is_valid(): 
      cd = form.cleaned_data 
      user = Person.objects.get_by_natural_key(request.user.get_username()) 
      comment = Comment(text=cd['text'], 
           author=user, 
           trip=trip) 
      comment.trip = trip 
      comment.save() 
    comments = trip.comment_set.all() 
    form = CommentForm() 
    return render(request, 'TravelBuddy/travel.html', {'trips': trip, 
                 'form': form, 
                 'comments': comments}) 

であり、ブラウザ内の画像への私のリンクは次のようになりますで持っている何

マイsetting.py

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')] 
     , 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'django.core.context_processors.static' 
      ], 
     }, 
    }, 
] 



WSGI_APPLICATION = 'Travel.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 


# Password validation 
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 


# Internationalization 
# https://docs.djangoproject.com/en/1.9/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.9/howto/static-files/ 

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static") 
MEDIA_URL = '/users/' 

http://127.0.0.1:8000/users/default/default.png 

彼らはそれが他のページでは動作しませんので、私はちょうどHTMLでURLにstaticを追加カントこの

http://127.0.0.1:8000/static/users/default/default.png 

のように見ています。

だから私は何が足りないのですか?またはここで何が間違っていますか?

+0

は、あなたがしたいとしている写真です実際にメディアを表示します(データベースで管理されていることを意味します)。 –

+0

うん、彼らは@パトリックビーンズ –

答えて

3

にMEDIA_URLを変更してみてください。

あなたのMEDIA_ROOTMEDIA_URLを見て、それらが正しい場所を指していることを確認してください。

次に、あなたのテンプレートで、あなたが属性を経由してオブジェクトのURLを取得することができます。ドキュメント内のメディア上の

<img src="{{ comment.author.picture.url }}" width="70px" height="70px">

より:https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-MEDIA_ROOT

+0

ありがとう!出来た! –

1

あなたがこのような場合には代わりにSTATICのMEDIAを参照する必要があることが表示されます「/静的/ユーザー/」

関連する問題