1.J'ai installe django 1.3
Salut
J'ai installé la 1.3 de DJANGO
>>> import django
>>> django.get_version()
'1.3'
2.J'ai créé une petite application
python manage.py startapp filestorage
3. Edition du models de filestorage
from django.db import models
# Create your models here.
class MyModel(models.Model):
file = models.ImageField(upload_to= 'image')
name = models.SlugField()
def __str__(self):
return '%s :%s'\
%(self.__class__.__name__, self.name)
4. Je fais ./manage.py syncdb
filestorage.mymodel: "file": To use ImageFields, you need to install the
Python
Imaging Library. Get it at http://www.pythonware.com/products/pil/ .
6. J'installe pil pour fixer le problème,et je teste
>>> from PIL import ImageFile
>>>
7. J’exécute a nouveau syncdb, et je vérifie que tout est Ok
Creating tables ...
Creating table filestorage_mymodel
Installing custom SQL ...
Installing indexes ...
No fixtures found.
8.
Creating tables ...
Creating table filestorage_mymodel
Installing custom SQL ...
Installing indexes ...
No fixtures found.
9. Je lance le shell
python manage.py shell
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit
(Intel)] on
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
10. Je teste la création et suppression de ImageField , et dans mon dossier
projet en cours, j'ai un dossier crée du nom 'image',et dedans il y' a
4d37c7.jpg.
>>> from filestorage.models import MyModel
>>> from django.core.files import File
>>> f = File(open("/abspath/4d37c7.jpg"))
>>> m.file.save(f.name, f)
>>> m.save()
11. Je verifie que la sauvegarde marche bien avec l'instance et le
fichier.Et j'ai
un model et une image dans le dossier image.
>>> m3 = MyModel.objects.all()
>>> print m3
[<MyModel: MyModel :>, <MyModel: MyModel :>]
12 .Je le supprime
m3[0].file.delete()
m3[0] est belle et bien supprimé, ainsi que l'image 4d37c7.jpg
se trouvant dans le dossier -image- sur ma machine, il faut juste que tu
mette MEDIA_ROOT= '' si le dossier image est a la racine.sinon tu met
le bon répertoire .Lorsque le MEDIA_ROOT est mal initialisé l'image ne
devait même pas être crée.
J'avoue que je n'arrive pas a simuler
ton soucis .Tout ce que je sais c'est que -filestorage- marche bien
et que -instance.image.delete()- marche aussi.Donc Django marche bien.
--Ad
Le 21 décembre 2011 14:04, Alioune Dia <[email protected]> a écrit :
> Hi Thomas
> Ok , je comprends c'est le -filestorage- que tu veux debugger bonne idée.
> Vu le code que tu as a print , j'ai comme l'impression que -Django fail
> silently-
> lorsque le chemin passé n'est pas bon . Je suis curieux de savoir ce que
> Hervé a mis dans le -MEDIA_ROOT- du settings.py. filestorage est
> totalement
> dependant de -MEDIA_ROOT (qui est un chemin absolu).
> --Ad
>
>
>
> Le 21 décembre 2011 12:10, Thomas NOEL <[email protected]> a écrit :
>
>>
>>
>> Le 21 décembre 2011 12:06, Alioune Dia <[email protected]> a écrit :
>>
>> Bonjour,
>>> Applique ce que Thomas t'a dis de faire et tu verras dans ton fichier
>>> de log quelque chose qui cloche (/tmp/debug). Cependant je te
>>> conseillerai
>>> de le faire dans la méthode -delete- de ton model plutot que dans le
>>> core de django
>>> (django/core/files/storage.py) .Cette partie est reversé aux -Cerveaux
>>> Privilégiés-
>>> .Moi je ne le ferai pas :). Si tu en est un comme Thomas, alors GO :)
>>>
>>
>> En fait mon idée est de vérifier que le delete du filestorage est bien
>> appelé
>> par le delete de imagefield (qui est un filefield, qui utilise un
>> filestorage)...
>> D'où ma proposition de patcher temporairement des print dans le delete du
>> filestorage... mais c'est juste une idée, comme ça, en passant...
>>
>> --
>> Thomas
>>
>>
>>
>> --
>> Ce message a été envoyé à la liste [email protected]
>> Gestion de votre abonnement : http://dakarlug.org/liste
>> Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
>> Le site du DakarLUG : http://dakarlug.org
>>
>
>
--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org