0

テンプレートとメディアの絶対パスを取得するために、これを先頭にして settings.py ファイルをセットアップします。

import os.path
import django

DJANGO_ROOT = os.path.dirname(os.path.realpath(django.__file__))
SITE_ROOT = lambda x: os.path.join(os.path.abspath(os.path.dirname(__file__)), x)


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',

MEDIA_ROOT = SITE_ROOT('media'),
MEDIA_URL = '/media/'

TEMPLATE_DIRS = (
    SITE_ROOT('templates'),
)

私のモデルは次のようになります。

class Work(models.Model):
    sample = models.ImageField(upload_to='screenshots/%Y/%m/%d/')
    name = models.CharField(max_length=200)
    url = models.URLField(blank=True)

テンプレートを同期して作成した後、変数を使用しました

{{ work.sample }}

ImageField を使用してアップロードされた画像を呼び出します。サーバーを実行した後、イメージは表示されませんでした。出力は単純でした

<img src="screenshots/2012/08/09/1.png">

タグに絶対パスが表示されないため、画像が正しく呼び出されません。他の情報は問題なく表示されます。誰でもこの問題を解決するのを手伝ってもらえますか? これは簡単な修正だと確信していますが、理解できません。ちなみに私はこれをローカルで実行しています。これが先に進むのに十分な情報であることを願っています。ありがとう。

4

2 に答える 2

1

MEDIA_URL完全なURLが表示されるように、フィールドの前に個別に出力する必要があります。RequestContextテンプレートをレンダリングするときにを使用することを忘れないでください。また、適切なコンテキストプロセッサが配置されていることを忘れないでください。

于 2012-08-13T03:41:04.423 に答える
1

これがお役に立てば幸いです

setting.py の変更

MEDIA_ROOT = '/path/to/static/folder/static'

 #Your static file location  
MEDIA_URL = 'http://localhost/static'  # i am asuming you are working on localhost

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/

' Apache を django 静的フォルダーにリンクします

と使用 <img src="{{ MEDIA_URL }}screenshots/2012/08/09/1.png />

于 2012-08-13T08:11:04.217 に答える