Hello,

today, I wanted to use FileField directly in Python CSV module, but problem 
was, that CSV module requires the file to be opened in text mode, not 
binary. So I though that this will be sufficient:

    obj.my_file_field.file.close()
    obj.my_file_field.file.open(mode='r')
    csvreader = csv.reader(obj.my_file_field)
    for row in csvreader:
        pass

But Django is internally working with BytesIO 
(https://github.com/django/django/blob/1.7c3/django/core/files/base.py#L98), 
so I get an Exception if I try to iterate the csvreader (that iterates the 
file object).

I am forced to use something like this:

    with open(obj.my_file_field.file.name, 'r') as fp:
        csvreader = csv.reader(obj.my_file_field)
        for row in csvreader:
            pass

Should not the FileField handle such cases? For example by specifying the 
mode I wan to use in model field attributes?

Thanks,
Martin

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/fbac2558-164a-4906-b6e9-3d2c845b25a3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to