Je ne parviens pas à afficher la vignette dans mon modèle. Je reçois cette erreur:
Django.db.utils.ProgrammingError: (1146, "La table 'ia_website.thumbnail_kvstore' n'existe pas")
Voici ce que j'ai fait
Dans settings.py:
INSTALLED_APPS = [
...
'sorl.thumbnail',
]
THUMBNAIL_DEBUG = TRUE
Dans models.py
import sorl
...
image = sorl.thumbnail.ImageField(upload_to='thumbnails', null=True)
Dans mon modèle
{% thumbnail content.image "237x110" as im %}
<img src="{{ im.url }}">
{% endthumbnail %}
Après quelques recherches, il semble donc que la version 12.3
de sorl-thumbnail sur PyPI et Github soient différentes!
Si vous téléchargez le source directement à partir de PyPI -, vous constaterez que le package ne contient aucune migration. C'est la raison pour laquelle la table n'existe pas même si vous avez exécuté toutes les migrations .
Sur Github, le fichier de migration pour la version 12.3
existe définitivement.
Vous avez trois options:
./manage.py syncdb
(uniquement si vous utilisez Django 1.8 ou une version antérieure)12.3
12.4a1
de sorl-thumbnail qui inclut les migrationsVous pouvez installer directement depuis Github comme suit:
pip install git+git://github.com/mariocesar/[email protected]
la version 12.3 de sorl-thumbnail prend en charge la version 1.8 de Django, où la commande syncdb existe toujours. Si vous utilisez Django 1.8 ou une version inférieure, vous pouvez créer la table manquante en exécutant
python manage.py syncdb
Si juste
manage.py makemigrations
ne crée aucune migration, essayez
manage.py makemigrations thumbnail
manage.py migrate
Cela va créer des migrations pour les vignettes, puis les migrer. Ça marche pour moi. J'utilise Django 1.9 et quelque 12.3.
Utilisez la version 12.3 de sorl-thumbnail. Suivez ces étapes
Supprimer la version actuelle
pip uninstall sorl-thumbnail
Installer la version 12.3
pip install git+git://github.com/mariocesar/[email protected]
Migrations
python manage.py migrate
Pour moi, l'erreur vient de se produire lors de l'exécution de dumpdata
.
Donc, si vous trouvez ce fil ici parce que vous avez essayé d'utiliser dumpdata
, alors exclure l'application des miniatures sera probablement une solution de contournement simple:
python manage.py dumpdata --exclude thumbnail
Bien sûr, vous devriez suivre les autres réponses, si vous voulez que votre Django soit propre.