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

Répondre à