2012-10-22 8 views
0

Création d'une base Q & Un site et de vouloir associer chaque question à une image (admin téléchargé) et s'il n'y a aucune image respective, met avec un espace réservé par défaut "No Image".Association d'une image à un modèle Django

J'ai deux modèles, question et réponse (voir ci-dessous). Chaque question doit avoir une image associée, donc je pensais que le meilleur moyen était d'attacher l'attribut ImageField au modèle Question.

#models.py 
class Question(models.Model): 
    title = models.CharField(max_length = 500) 
    picture = models.ImageField(height_field = '250', 
           width_field = '200', 
           upload_to = 'images') 
    def __unicode__(self): 
     return self.title 

Quand je RUNSERVER bien, me dit de télécharger Python Imaging Library, et quand je reçois une erreur (problème différent).

En prenant du recul, quel est le meilleur moyen d'ajouter une image à un modèle dans Django?

+0

Je pense en utilisant 'ImageField' est une très bonne façon d'ajouter une image à un modèle Django. Si vous ne pouvez pas installer Python Imaging Library (PIL) pour une raison ou une autre, vous pouvez également essayer d'utiliser 'FileField'. – aganders3

+1

Je crois que vous utilisez incorrectement height_field et width_field. C'est censé être une chaîne avec le nom d'un champ que vous voulez mettre la valeur spécifiée. Donc height_field = 'myheightfield'. Vérifiez [ici] (https://docs.djangoproject.com/en/dev/ref/models/fields/#imagefield) – Paulo

+0

merci, réalisé après avoir essayé de lancer le programme et cela n'a pas fonctionné. –

Répondre

0

... Oubliez PIL

Utilisez une URL d'emplacement d'entrée DB. Au lieu d'avoir un ImageField(), utilisez

picturepath = models.CharField(255) 

qui contient une URL à l'emplacement statique de l'image.

donc si STATIC_URL = "http://127.0.0.1/static/" et PicturePath = "images/poots.png"

Ensuite, transmettre cette information le long de la vue, et l'utiliser dans la modèle:

<img src="{{ STATIC_URL }}{{ question.picturepath }}"> 

fournira

<img src="http://127.0.0.1/static/images/poots.png"> 
Questions connexes