Partage
  • Partager sur Facebook
  • Partager sur Twitter

django ImageField urls

mauvaises urls de mes images

Sujet résolu
    22 mars 2015 à 20:17:15

    bonjour à tous

    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)

    je vous donne les différents codes:

    settings.py

    import os
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    MEDIA_ROOT = os.path.join(BASE_DIR, "/monsite/media/")
    MEDIA_URL = os.path.join(BASE_DIR, "/monsite/media/")

    +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

    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2015 à 21:13:10

      Salut,

      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 ImageField photo ?

      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>

      -
      Edité par pixis 23 mars 2015 à 21:17:34

      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2015 à 13:55:22

        merci de ta réponse

        sur ma page web, je fais ctrl+u (afficher le code source) et j'obtiens

            <h2>gdf,</h2>
            Adresse : <p>fgh,</p><br/>
            <img src="membre/Hydrangeas.jpg"/>
        

        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:

        1. ^monsite/ ^$
        2. ^monsite/ ^actu/(?P<id_article>\d+)$ [name='afficher_actu']
        3. ^monsite/ ^date$
        4. ^monsite/ ^addition/(?P<nombre1>\d+)/(?P<nombre2>\d+)/$
        5. ^monsite/ ^accueil$
        6. ^monsite/ ^bureau$
        7. ^monsite/ ^calendrier$
        8. ^monsite/ ^resultatsNIV$
        9. ^monsite/ ^resultatsNV$
        10. ^monsite/ ^autresresultats$
        11. ^monsite/ ^memberlist$
        12. ^monsite/ ^photos$
        13. ^monsite/ ^parties$
        14. ^monsite/ ^horaires$
        15. ^monsite/ ^article/(?P<id>\d+)-(?P<slug>.+)$
        16. ^monsite/ ^admin/
        17. ^monsite/ ^contact/$
        18. ^monsite/ ^photomembres/$
        19. ^C\:\/monsite\/media\/(?P<path>.*)$
        20. ^static\/(?P<path>.*)$

        The current URL, monsite/photomembres/membre/Hydrangeas.jpg, didn't match any of these.


        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2015 à 12:44:42

          problème résolu (je crois)

          dans mon settings.py à la place de 

          MEDIA_URL =os.path.join(BASE_DIR, "/monsite/media/")

          il fallait mettre 

          MEDIA_URL ="media/"

          • Partager sur Facebook
          • Partager sur Twitter

          django ImageField urls

          × 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.
          • Editeur
          • Markdown