Django

2013-02-03 18 views
5

में डेटाबेस में स्थित एक छवि प्रदर्शित करें, मैं सिर्फ एक छवि को प्रदर्शित करना चाहता हूं जिसे मैंने वेब पेज पर एक HTML छवि टैग के माध्यम से व्यवस्थापक मॉड्यूल के माध्यम से अपलोड किया है। छवि /home/user/work/djcode/media/chicks/blondie.jpg में स्थित है।Django

यहाँ मेरी models.py के प्रासंगिक हिस्सा है

class Image(models.Model): 
    model_name = models.CharField(max_length=50) 
    model_pic = models.ImageField(upload_to='chicks/') 
def __unicode__(self): 
    return self.model_name 

यहाँ है मेरी views.py की प्रासंगिकता का

def main(request): 
    i = get_object_or_404(Image, pk=1) 
    return render_to_response('polls/main.html', {'image': i}, context_instance=RequestContext(request)) 

HTML टैग है कि मैं उपयोग कर रहा हूँ बस

है
<img src="{{ MEDIA_ROOT }}/{{ image.model_pic.url }}"> 

सेटिंग.py से, मेरा मीडिया रूट MEDIA_ROOT = '/ home/user/work/djcode/media'

है

ध्यान दें कि परिवर्तनीय {{image.model_pic.url}} HTML टेम्पलेट के माध्यम से "लड़कियों/blondie.jpg" दिखाता है, इसलिए मुझे लगता है कि मेरी छवि वस्तु वास्तव में टेम्पलेट पर भेजी गई है।

कोई भी मुझे इसके साथ हाथ दे सकता है? यह वास्तव में सहायक होगा।

धन्यवाद आपके समय के लिए बहुत कुछ!

उत्तर

1

आपको {{MEDIA_URL}} या {{STATIC_URL}} का उपयोग करने की आवश्यकता है, तो यह विकल्प इस बात पर निर्भर करता है कि आप सर्वर पर अपनी फ़ाइलों का प्रबंधन कैसे करते हैं।

5

आपके टेम्पलेट में छवि फ़ील्ड पर यूआरएल फ़ंक्शन का उपयोग बिल्कुल सही नहीं है - {{ image.model_pic.url }} समस्या को ठीक करना चाहिए। आपको बस {{ MEDIA_URL }} बिट ड्रॉप करने की आवश्यकता है।

अपने HTML होना चाहिए -

<img src="{{ image.model_pic.url }}"> 

using files in models पर प्रलेखन पर एक नज़र डालें।

आप अभी भी समस्या आ रही है तो यह serving static files. Django में स्टैटिक फ़ाइलें सेवित के साथ कोई समस्या है कि क्या आप यह उत्पादन में कर रहे हैं या सिर्फ python manage.py runserver आदेश का उपयोग पर निर्भर करता है हो सकता है।

विकास (अजगर manage.py runserver के साथ), सुनिश्चित करें कि आप अपने MEDIA_URL और MEDIA_ROOT अपने settings.py में सही मिल गया है बनाने के दौरान

सर्वर मीडिया फ़ाइलों के लिए तो आप अपने यूआरएल conf के लिए निम्न जोड़ सकते हैं -

from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = patterns('', 
    # ... the rest of your URLconf goes here ... 
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

उत्पादन में फ़ाइलों को कैसे सेवा देना है, इस पर निर्देशों के लिए docs पर एक नज़र डालें।