On Thu, 18 Sep 2008 12:16:52 -0400, Marty Alchin <[EMAIL PROTECTED]> wrote:
>
> On Thu, Sep 18, 2008 at 11:55 AM, Faheem Mitha <[EMAIL PROTECTED]> wrote:
>> Putting the following into my settings.py (checked for two different
>> projects for Dango 1.0)
>>
>> from django.core.files.storage import Storage
>>
>> gives
>>
>> [EMAIL PROTECTED]:/var/django/hg$ python manage.py validate
>> Error: Can't find the file 'settings.py' in the directory containing
>> 'manage.py'. It appears you've customized things.
>> You'll have to run django-admin.py, passing it your settings module.
>> (If the file settings.py does indeed exist, it's causing an ImportError
>> somehow.)
>>
>> Is there some reason this is not possible, or am I doing something wrong?
>> Can anyone reproduce this? Please cc me on any reply.
>
> Line 5 of django.core.files.storage looks like this:
>
> from django.conf import settings
>
> That means that your settings module imports Storage, which in turn
> imports settings. This is known as a circular import, which is never a
> good thing. So, yes, you're doing something wrong, because that
> shouldn't work.
>
> Now, the real question is: why are you trying to import Storage in
> your settings.py? What is it you're trying to accomplish? You're
> certainly using the wrong approach at the moment, but I can't
> recommend anything else without knowing what you're trying to do.

I was trying to do something like (in settings.py)

*******************************************
from customstorage import FileSystemStorage
....
DEFAULT_FILE_STORAGE = FileSystemStorage
*******************************************

where customstorage.py looks as below. This was failing (I think)
because the following line in customstorage.py failed to be imported
into settings.py

from django.core.files.storage import FileSystemStorage

I then belatedly realised that that the settings are strings, and did

DEFAULT_FILE_STORAGE = "customstorage.FileUploadStorage"

instead, which works.

Thanks for the reply and clarification, and sorry for the noise. If
there is anything I missed, please feel free to educate me further.

                                                    Thanks, Faheem.

*******************************************************
customstorage.py
*******************************************************
import os
from django.core.files.storage import FileSystemStorage
from django.utils._os import safe_join
from django.conf import settings

class FileUploadStorage(FileSystemStorage):    
    def path(self, name):
        print "calling FileUploadStorage class."
        try:
            path = safe_join(settings.MEDIA_ROOT, name)
        except ValueError:
            raise SuspiciousOperation("Attempted access to '%s' denied." % name)
        return os.path.normpath(path)

******************************************************


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to