Saya tidak tahu apa perbedaannya, tetapi saya menemukan perbedaan use case (menggunakan django 1.9.1 yang dijalankan melalui apache, wsgi pada Python 3.4). Di aplikasi saya, saya memiliki beberapa gambar di ImageFields
database. Jika saya menggunakan kode seperti ini di template saya:
<a href="object-{{object.id}}"><img src="{% static object.image %}" height="200px"></a>
lalu, jika saya menggunakan {% load static %}
, django melempar TypeError
( Cannot mix str and non-str arguments
). Ini mungkin karena object.image
bukan string, ini adalah ImageField
, yang akan diubah menjadi string pada tahap selanjutnya. Namun, jika salah menggunakan {% load staticfiles %}
tidak terjadi kesalahan seperti itu.
Sayangnya, saya menemukan perbedaan ini setelah menghabiskan berjam-jam mencoba men-debug masalah. Saya berhasil menemukan solusi ketika menggunakan opsi pertama, yaitu menambahkan metode konverter string ke objek seperti ini:
def image_str(self):
return str(self.image)
Semoga ilmu ini berguna bagi seseorang.