Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7k
Updated NestedBoundField to also handle empty string when rendering its form#3677
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…ts formIf a NestedBoundField field has a value of `None` and is inside another NestedBoundField field, it will have its value converted to an empty string while the form of its enclosing field is being rendered. So, NestedBoundField fields with an empty string value must be handled the same way as NestedBoundField fields with a `None` value.
lovelydinosaur commentedNov 26, 2015
Could you give a simple example, demonstrating exactly what gets rendered incorrectly, and how this fix affects it? |
Ernest0x commentedNov 26, 2015
Of course. I have made the following#3464 (comment) |
lovelydinosaur commentedNov 26, 2015
Okay. That's something, tho a minimal code example would still be helpful. |
andrewdodd commentedNov 26, 2015
I agree, I'd love to see a basic example of how this occurs. |
Ernest0x commentedNov 26, 2015
Ok, here is code that reproduces exactly the error that this pull request fixes: fromrest_frameworkimportserializersfromrest_framework.renderersimportHTMLFormRendererclassLevel2NestedSerializer(serializers.Serializer):some_field=serializers.CharField()classLevel1NestedSerializer(serializers.Serializer):nested2_field=Level2NestedSerializer(allow_null=True)another_field=serializers.CharField()classLevel0NestedSerializer(serializers.Serializer):nested1_field=Level1NestedSerializer()serializer=Level0NestedSerializer(data={'nested1_field': {'nested2_field':None,'another_field':'test' }})serializer.is_valid()renderer=HTMLFormRenderer()forfieldinserializer:rendered=renderer.render_field(field, {}) |
lovelydinosaur commentedNov 26, 2015
Okay, and how does the HTML form render before/after the fix. (Include screenshots if you're feeling generous! 😎 ) |
Ernest0x commentedNov 26, 2015
Before the fix, it does not render at all. It crashes with a traceback. |
lovelydinosaur commentedNov 27, 2015
Would you consider pulling together a test case? Failing that wemight consider merging in any case and adding that as an outstanding issue. |
Ernest0x commentedNov 27, 2015
Sure. Added in this pull request. |
Updated NestedBoundField to also handle empty string when rendering its form
lovelydinosaur commentedNov 27, 2015
Good stuff, thanks! |
If a NestedBoundField field has a value of
Noneand is inside another NestedBoundField field, it will have its value converted to an empty string while the form of its enclosing field is being rendered. So, NestedBoundField fields with an empty string value must be handled the same way as NestedBoundField fields with aNonevalue.