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 django-users+unsubscr...@googlegroups.com.
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