2016-08-10 6 views
0

私はMySqlとDjangoを使用しています。データベースに保存されているイメージルートを選択する必要があります。ImageFieldのurlプロパティを使用することはできません。データベースに格納されているルートである必要があります。adminに画像を保存し、Djangoのテンプレートに画像を表示する正しい方法

まず第一に、これは設定で私の設定です:モデルの

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__)) 

MEDIA_ROOT = PROJECT_ROOT + '/archivos/' 
MEDIA_URL = '/archivos/' 

私の最初の試みは、このでした:

foto = models.ImageField(upload_to = settings.MEDIA_ROOT) 

そして、データベースに保存されたURLは、このでした:

/home/developer/project/mysystem/archivos/hombre.png 

後で私はモデルでこれを試しました:

foto = models.ImageField(upload_to = '') 

また、新しいURLはこれです:イメージはMEDIA_ROOTフォルダにアップロードされ、両方のケースで

./pantalonazul_pXNLcuF.jpg 

が、私はデータベースに保存されたURLを使用しようとすると、画像がショーをしません。私は、jqueryでsrcを変更しています。私はそれが問題であったのですが、いいえ、私は手作業でURLをイメージに入れました。また、これを試しました:../../archivos/pantalonazul_pXNLcuF.jpgしかし、同じ悪い結果をもたらしました。

私は管理者に入力し、それはこの例を示します Image in admin

をそして、私はそのリンクをクリックした場合、私は、アドレスバーにこのURLを取得する:私もそのURLを使用しようとした

http://127.0.0.1:8000/archivos/pantalonazul_pXNLcuF.jpg 

イメージでは、手で、srcプロパティで書かれていますが、動作しませんでした。

最後にURLを取得するためにリンクをクリックすると、URLがurls.pyファイルに登録されていないというエラーが表示され、URLのリストが表示されます。

The current URL, archivos/pantalonazul_pXNLcuF.jpg, didn't match any of these. 

私は間違っていますか?なぜイメージを得ることができないのですか?設定や場所に何かがありますか?

PS:画像を保存するフォルダは、自分のアプリケーションフォルダの外にあるか、 "一般"フォルダにあるか、それを呼び出す方法がわかりません。settings.pyがあるフォルダと同じフォルダにあります。私はこのSettings Media URLを読んで、部分的な解決策を発見した、それはこのServinge files during developmentに私をリダイレクトした後

-MyAppFolder 
-MySystem 
    -archivos 
     -image1.jpg 
     -image2.jpg 
    -settings.py 
    -urls.py 
    -wsgi.py 

答えて

0

:フォルダは次のようなものです。 それがいることを言う:私は最後のモデル、空uploaded_toのものを使用して、ちょうどドキュメントはurls.pyファイルへの第2のリンクにお勧めの行を追加し、また、このように画像を呼び出してい

urls.pyソリューションは、Webページ/アプリケーションとして提供するのではなく、開発用にのみ機能するため、誰かが実際のサーバで動作させる方法を知っていますか?設定でDEBUG=trueを使用せずに

関連する問題