Django: Photologue ne montre pas les images dans les modèles
-
06-07-2019 - |
Question
J'essaie d'installer Django-photologue. Tout semble aller pour le mieux, car j'installe et installe conformément aux directives officielles. Je dois télécharger des photos à titre d'exemples. Cependant, lors de l'affichage d'une photo ou des détails de la galerie, une erreur se produisant comme suit:
Caught an exception while rendering: 'Photo' object has no attribute 'get_thumbnail_url'
J'ai essayé de supprimer le code suivant du fichier photo_detail.html
.{% if object.public_galleries %}
<h2>This photo is found in the following galleries:</h2>
<ol>
{% for gallery in object.public_galleries %}
<li>{%previous_in_gallery object gallery%} <a href="{{ gallery.get_absolute_url }}">{{ gallery.title }}</a> {%next_in_gallery object gallery%}</li>
{% endfor %}
</ol>
{% endif %}
Plus d'erreurs, mais les images ne s'affichent pas. Si vous cliquez sur le lien conduira toujours à corriger les photos à voir. Je pense que le problème dans:
{{ object.get_display_url }}
Cela ne renvoie absolument aucune valeur. S'il vous plaît, aidez-moi à résoudre ce problème. Merci!
La solution
Avez-vous exécuté python manage.py plinit
après l’installation et choisi de créer à la fois une vignette
et un affichage
photosize? Ces photos doivent être définies dans votre base de données.
Autres conseils
Dans les autres versions, vous devez modifier photologue / templates / photolog / tags / next_in_gallery.html et remplacer
.{{ photo.get_thumbnail_url }}
avec
{{ photo.thumbnail.url }}
Idem pour photologue / templates / photolog / tags / prev_in_gallery.html.
Honnêtement, en regardant la source, cela ressemble à un bogue dans le projet. Si vous recherchez le code source , la vignette ne semble pas être un champ de la classe Photo ( get_FIELD_url
est un moyen facile d'accéder à un fichier ImageField. url btw.) Je recommanderais donc de bricoler avec la source ou de trouver un autre projet. Je me trompe peut-être, mais c’est ce que mon analyse de ~ 5 minutes du projet a trouvé.