pour le contexte, je suis en train de développer un site avec django et des membres, news... . Je veux mettre des images différentes pour chaque membre en l'occurence.
Pour l'instant, je suis en local
j'ai un petit problème concernant les Imagefield (2 en fait)
+fichiers pour static et admin django (et autres peut etre moins intéressants)
principal urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
admin.autodiscover()
urlpatterns = patterns('',
url(r'^monsite/', include('monsite.urls')),
)+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
models.py:
class Membre(models.Model):
nom = models.CharField(max_length=40)
adresse = models.TextField (null = True)
photo = models.ImageField(upload_to="membre/")
def __str__(self):
return self.nom
admin.py:
from django.contrib import admin
from monsite.models import Article, Partie,Membre,Activity
admin.site.register(Membre)
photomembres.html
<h1>Liste des membres</h1>
{% for membre in photomembre %}
<h2>{{ membre.nom }}</h2>
Adresse : {{ membre.adresse|linebreaks }}<br/>
<img src="{{ membre.photo.url }}"/>
{% endfor %}
+ l'autre urls.py et views.py basiques correspondant
Pour l'administration, j'arrive à ajouter/modifier/supprimer un membre avec sa photo vers le dossier de mon MEDIA_ROOT. Par contre l'url donné par le lien renvoie une erreur.
mon template renvoie bien ma liste de membres avec nom,adresse mais pas la photo à cause de mauvaise url
merci d'avance pour votre aide et n'hésitez pas à me demander plus d'info si nécessaire
Comme personne n'a répondu, j'ai une question : Par quoi est remplacé ton {{ membre.photo.url }} ? Une URL ? Une chaine vide ?
Par ailleurs, où est défini l'attribut url pour ton objet ImageFieldphoto ?
Parce que, dans le doute, je suis retourné voir la doc mais c'est ce qu'il me semblait, les attributs propres à ImageField sont <tt class="descclassname">ImageField.</tt><tt class="descname">height_field et </tt><tt class="descclassname">ImageField.</tt><tt class="descname">width_field</tt>
quand je clique dessus l'url devient: http://127.0.0.1:8000/monsite/photomembres/membre/Hydrangeas.jpg sachant que http://127.0.0.1:8000/monsite/ est la base de mes urls
photomembres/ bah je ne comprends pas (j'ai un template photomambres.html, une url et views associées mais rien dans le settings.py
membre/Hydrangeas.jpg correspond à mon upload to dans mon model et le nom de l'image
j'ai essayé d'aller sur l'addresse http://127.0.0.1:8000/monsite/media/membre/Hydrangeas.jpg mais pas de meilleur résurltats
" Par ailleurs, où est défini l'attribut url pour ton objet ImageFieldphoto ?"
je ne vois pas trop de quoi tu parles. Dans mon esprit cette gestion se fait au niveau du settings.py MEDIA_ROOT et MEDIA_URLS.
pour les attributs height et witdth, je les avais vu dans la doc django et pas dans le cours openclassroom sur django ni dans plusieurs exemple lors de mes recherches sur mon ami google. J'essayerai ce soir au cas où.
peut etre intéressant, l'erreur est error 4 page not found
Using the URLconf defined in clubcesc.urls, Django tried these URL patterns, in this order:
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon blog hackndo