2015-12-06 104 views
0
I am creating one app using following two url's , homepage.html and detail.html. 

*models.py* 

class News(models.Model): 
    primary_image = models.ImageField("Main Image ",upload_to = "static/uploadedImg/main",) 
    secondary_Image = models.ImageField("Sub Image",upload_to = "static/uploadedImg/sub",) 

在settings.py我定義了媒體和MEDIA_ROOT如何訪問上傳圖片

我想primary_image爲紐帶,以顯示homepage.html隨機primary_image。

*articles.html* 

    <div id = "randommainImage"> 
     <a href = "#"><img src = "{{random_object.primary_image}}"></a> 
    </div> 

NewArticles 
articles 
db.sqlite3 
manage.py 
media 
NewsArticles 
README.md 
static 

NewsArticles\articles 
admin.py 
forms.py 
models.py 
static 
Templates 
tests.py 
urls.py 
views.py 

另外,我想在detail.html同時顯示primary_image & secondary_Image 任何人可以幫助我嗎?

回答

0

如果您有這些在你的設置正確,那麼你已經準備好了:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media") 
MEDIA_URL = '/media/' 

稱爲media的文件夾將創建上傳該文件夾中的所有圖像。 你像場應該是這樣的,我不明白你爲什麼要在靜態文件夾中創建在一個文件夾..

primary_image = models.ImageField(upload_to='uploadedImg/main/') 
secondary_image = models.ImageField(upload_to='uploadedImg/sub/') 

所以,你的主要圖像將在media/uploadedImg/main/img.png

視圖可以看看如:

def index(request): 
    context_dict = {} 

    news = News.objects.all() 
    context_dict['news '] = news 

    return render(request, 'index.html', context_dict,) 

爲了獲得主圖像,您將在模板中使用{{ news.primary_image.url }}

編輯>

在你的urls.py

from django.conf import settings 

# ... your normal urlpatterns here 

if settings.DEBUG: 
    # static files (images, css, javascript, etc.) 
    urlpatterns += patterns('', 
     (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT})) 
+0

文件 「C:\ Python27 \腳本\ NewsArticles \ NewsArticles \ settings.py」,第20行 SECRET_KEY = ^ 語法錯誤:無效的語法 –

+0

我得到這個消息改變路徑 –

+0

你能粘貼'settings.py'位,顯示您的媒體設置,和你的私人密鑰[不用鑰匙IT SELF]之後,因爲你必須在'SECRET_KEY' – qasimalbaqali

0

添加此如果你正確地定義MEDIAMEDIA_ROOT,在article.html,以顯示第一圖像您使用的模板:

<img src = "{{ MEDIA_ROOT }}{{ random_object.primary_image }}" /> 

a ND同樣在detail.html模板:

<img src = "{{ MEDIA_ROOT }}{{ random_object.primary_image }}" /> 
<img src = "{{ MEDIA_ROOT }}{{ random_object.secondary_image }}" /> 
+0

仍然沒有顯示,我在螢火蟲「static/uploadedImg/main/ezgif.com-crop.gif」 –

+0

STATIC_URL ='/ static /' STATIC_ROOT = os.path.join(BASE_DIR,「static 「) MEDIA_ROOT = os.path。加入(BASE_DIR,'media') MEDIA_URL ='/ media /' 這是正確的路徑嗎? –

+0

@KiranN您應該顯示您的應用程序文件夾結構。 – doru