﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
33254	Issue with django.forms.fields.FilePathField() and callable path	Chakib	nobody	"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  [https://github.com/django/django/blob/stable/3.2.x/django/forms/fields.py#L1126]).
I have this explicit error:
""scandir: path should be string, bytes, os.PathLike, integer or None, not function""

If I monkey-patch ""self.path""  in the {{{__init__}}} method 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()"	Uncategorized	closed	Forms	3.2	Normal	invalid	FilePathField		Unreviewed	0	0	0	0	0	0
