मुझे नहीं पता कि अंतर क्या होना चाहिए, लेकिन मुझे उपयोग केस अंतर मिला (डीजेंगो 1.9.1 का उपयोग अपाचे के माध्यम से चल रहा है, पायथन 3.4 पर wsgi)। मेरे ऐप में, मेरे पास डेटाबेस में ImageFields
में कुछ छवियां हैं। अगर मैं अपने टेम्पलेट में इस तरह कोड का उपयोग करें:
<a href="object-{{object.id}}"><img src="{% static object.image %}" height="200px"></a>
तो, अगर मैं {% load static %}
उपयोग करते हैं, Django thorws एक TypeError
(Cannot mix str and non-str arguments
)। यह संभवतः है क्योंकि object.image
एक स्ट्रिंग नहीं है, यह ImageField
है, जो बाद के चरण में एक स्ट्रिंग में परिवर्तित हो जाता है। हालांकि, अगर कोई {% load staticfiles %}
का उपयोग करता है तो ऐसी कोई त्रुटि नहीं होती है।
दुर्भाग्य से, समस्या को डीबग करने का प्रयास करने के घंटों खर्च करने के बाद मुझे यह अंतर पता चला।
#image string
def image_str(self):
return str(self.image)
आशा इस ज्ञान किसी को फायदा नहीं होगा: मैं जब इस तरह वस्तु के लिए एक स्ट्रिंग कनवर्टर विधि जोड़ने के लिए पहला विकल्प का उपयोग कर, अर्थात् के लिए एक समाधान खोजने के लिए कामयाब रहे।
मैं बस, सब कुछ के लिए STATIC_URL का उपयोग करें और इसके लिए मुझे – Maximas
@Maximas यह काम करता है ठीक से काम करने लगता है, लेकिन मुझे लगता है कि यह सर्वोत्तम अभ्यास नहीं है – Rexford
इनमें से कोई भी जवाब अच्छा नहीं है। यह एक [अधिक हालिया और पूर्ण उत्तर] है (https://stackoverflow.com/a/34424007/1577947)। – Jarad