Hi, 

First post here, so I don't know if it's the correct channel for this kind 
of issue.
Sorry if it's not.

Since v 3.0 we can set path attribute as a callable in a 
models.fields.FilePathField(), 
as discussed here:
https://code.djangoproject.com/ticket/29529

and documented here:
https://docs.djangoproject.com/en/3.0/ref/models/fields/#django.db.models.FilePathField.path

The commit adding this feature can be found here:
https://github.com/django/django/commit/ef082ebb84f00e38af4e8880d04e8365c2766d34

I have an issue when I try to use django.forms.fields.FilePathField()
https://github.com/django/django/blob/stable/3.2.x/django/forms/fields.py#L1095
In the case where path is defined as a callable, and os.scandir(self.path) 
is called (as showed in  l.1126 
<https://github.com/django/django/blob/stable/3.2.x/django/forms/fields.py#L1126>
).
I 'm facing this explicit error:
"scandir: path should be string, bytes, os.PathLike, integer or None, not 
function"

If I override self.path with a pre-check similar to what it was done for 
the added feature 
<https://github.com/django/django/blob/stable/3.2.x/django/db/models/fields/__init__.py#L1711>
it seems to solve this issue.

```
...
path = self.path() if callable(self.path) else self.path
for f in os.scandir(path):
...
```

I don't know if it's a bug or if I miss something using 
models.fields.FilePathField() and django.forms.fields.FilePathField()

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/b554a6eb-4978-428f-93b4-324a382557f0n%40googlegroups.com.

Reply via email to