Open
Conversation
Contributor
Author
|
@jieter Thanks for taking a look at my earlier PRs. I'm wondering what you think about the approach I've taken here; I proposed an alternative in #118 (comment) that I could implement on a separate branch if desired. |
Adding `get_localized_value` allows us mimic how a "native" FileField is instantiated: https://github.com/django/django/blob/629398e55fd260c2ac4c2a9fc8b0c7d8dbda9e56/django/db/models/fields/files.py#L166 `TranslationField.pre_save` is modified to mimic how `pre_save` calls work as well: https://github.com/django/django/blob/629398e55fd260c2ac4c2a9fc8b0c7d8dbda9e56/django/db/models/fields/files.py#L313 The virtual FileField instances are not considered concrete, so are not processed within the ORM: https://github.com/django/django/blob/629398e55fd260c2ac4c2a9fc8b0c7d8dbda9e56/django/db/models/sql/compiler.py#L1744
Use descriptor_class to mimic how FileField returns a FieldFile instance https://github.com/django/django/blob/629398e55fd260c2ac4c2a9fc8b0c7d8dbda9e56/django/db/models/fields/files.py#L321 https://github.com/django/django/blob/629398e55fd260c2ac4c2a9fc8b0c7d8dbda9e56/django/db/models/fields/files.py#L166
765a76b to
7cd0a2b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #118, #119
After implementing #119, I took a stab at
FileFieldsupport.I knew that
FileFieldonly stores a string in the database, but I didn't fully understand how theFieldFilewrapper was implemented for manipulating the field value.The approach I've taken here is to mimic how the Django ORM typically interacts with
FileFieldinstances.I've configured the tests to use the InMemoryStorage class to avoid needing to clean up temp files generated during tests.