biblioteka imagekit i wyświetlenie zdjęcia w szablonie

0

Witam i proszę kolejny raz o pomoc :)

Mam taki oto model:

class Photo(models.Model):
	title = models.CharField(max_length=200, default='photo')
	description = models.TextField(blank=True, null=True)
	uploaded = models.DateTimeField(default=timezone.now)

	photo = ProcessedImageField(upload_to='photos', processors=[ResizeToFill(50, 50)], format='JPEG', options={'quality': 60})

	class Meta:
		managed = True
		db_table = 'Photo'

	def __str__(self):
		return self.title

Taki widok:

def photo_detail(request, photo_id):
	img = get_object_or_404(Photo, id=photo_id)
	return render(request, 'photo_detail.html', {'img': img})

I taki szablon:
<img src="{{ img.photo.url }}" title="{{ img.title }}">

Problem polega na tym, że w żaden sposób nie mogę wyświetlić zdjęcia w szablonie. Jeśli natomiast zamienię atrybut 'title" w szablonie z "img.title" na "img.photo.title" pojawia się ścieżka do zdjęcia na dysku (plik oczywiście został wcześniej uploadowanyna dysk), tyle tylko, że cała ścieżka jest "kapitalikowana", tzn. przykładowa ścieżka to "photos/zdjecie.jpg", natomiast w przegladarce wyświetla się "Photos/Zdjecie.Jpg". Mnie to dziwi i podejrzewam, że to gdzies tu kryje sie problem.

Jest to oczywiście moje pierwsze podejście do zarządzania obrazami w Django. Prośba o pomoc :)

0

Chyba się zagalopowałem z użyciem biblioteki imagekit, bo nie o na wydaje sie być właściwym problemem. Problemem jest to, że nie mogę wyświetlić zdjęcia zapisanego w bazie i na dysku. Instrukcja img.photo.url zwraca zarówno w szablonie, jak i konsoli bezpośrednio na obiekcie błąd: "AttributeError: 'bytes' object has no attribute 'url'". Baza to MySQL.

Odezwie sie ktoś? :) Zgłębiam internet i nic...

0

Po wielu mniej i bardziej świadomych poszukiwaniach i kombinacjach udało mi sie rozwiązać problem samemu. Przyczyną było nieprawidłowo ustawione pole dla zdjęcia w bazie MySQL. Był blob, teraz jest varchar.

Poza tym do pliku urls.py trzeba było dopisać static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) (dodając do listy urlpatterns).

Tak więc juz mogę zabrać się za zgłębianie wspomnianej w tytule wątku biblioteki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1