#35948: FileField storage should support lambda
-------------------------------------+-------------------------------------
     Reporter:  Alexander Nestorov   |                     Type:  New
                                     |  feature
       Status:  new                  |                Component:  File
                                     |  uploads/storage
      Version:  5.1                  |                 Severity:  Normal
     Keywords:  storage, lambda      |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
 Since Django already supports callables for the `storage` parameter of
 FileField, it would be nice if it also supported lambdas.
 Currently, attempting to use lambda will result in the following error:


 {{{
  File "/usr/local/lib/python3.11/site-
 packages/django/core/management/__init__.py", line 442, in
 execute_from_command_line
     utility.execute()
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/__init__.py", line 436, in execute
     self.fetch_command(subcommand).run_from_argv(self.argv)
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/base.py", line 413, in run_from_argv
     self.execute(*args, **cmd_options)
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/base.py", line 459, in execute
     output = self.handle(*args, **options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/base.py", line 107, in wrapper
     res = handle_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/commands/makemigrations.py", line 259, in
 handle
     self.write_migration_files(changes)
   File "/usr/local/lib/python3.11/site-
 packages/django/core/management/commands/makemigrations.py", line 364, in
 write_migration_files
     migration_string = writer.as_string()
                        ^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/writer.py", line 141, in as_string
     operation_string, operation_imports =
 OperationWriter(operation).serialize()
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/writer.py", line 99, in serialize
     _write(arg_name, arg_value)
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/writer.py", line 51, in _write
     arg_string, arg_imports = MigrationWriter.serialize(item)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/writer.py", line 287, in serialize
     return serializer_factory(value).serialize()
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/serializer.py", line 51, in serialize
     item_string, item_imports = serializer_factory(item).serialize()
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/serializer.py", line 240, in serialize
     return self.serialize_deconstructed(path, args, kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/serializer.py", line 105, in
 serialize_deconstructed
     arg_string, arg_imports = serializer_factory(arg).serialize()
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/site-
 packages/django/db/migrations/serializer.py", line 185, in serialize
     raise ValueError("Cannot serialize function: lambda")
 }}}


 https://docs.djangoproject.com/en/5.1/topics/files/#using-a-callable
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35948>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070193703ca21d-f897b48e-f056-4bfc-aa5c-7308c4812ce1-000000%40eu-central-1.amazonses.com.

Reply via email to