Unverified Kaydet (Commit) 1ffddfc2 authored tarafından belegnar's avatar belegnar Kaydeden (comit) Mariusz Felisiak

Fixed #30302 -- Fixed forms.model_to_dict() result if empty list of fields is passed.

üst 714cf468
...@@ -83,7 +83,7 @@ def model_to_dict(instance, fields=None, exclude=None): ...@@ -83,7 +83,7 @@ def model_to_dict(instance, fields=None, exclude=None):
for f in chain(opts.concrete_fields, opts.private_fields, opts.many_to_many): for f in chain(opts.concrete_fields, opts.private_fields, opts.many_to_many):
if not getattr(f, 'editable', False): if not getattr(f, 'editable', False):
continue continue
if fields and f.name not in fields: if fields is not None and f.name not in fields:
continue continue
if exclude and f.name in exclude: if exclude and f.name in exclude:
continue continue
......
...@@ -1814,6 +1814,7 @@ class ModelOneToOneFieldTests(TestCase): ...@@ -1814,6 +1814,7 @@ class ModelOneToOneFieldTests(TestCase):
bw = BetterWriter.objects.create(name='Joe Better', score=10) bw = BetterWriter.objects.create(name='Joe Better', score=10)
self.assertEqual(sorted(model_to_dict(bw)), ['id', 'name', 'score', 'writer_ptr']) self.assertEqual(sorted(model_to_dict(bw)), ['id', 'name', 'score', 'writer_ptr'])
self.assertEqual(sorted(model_to_dict(bw, fields=[])), [])
self.assertEqual(sorted(model_to_dict(bw, fields=['id', 'name'])), ['id', 'name']) self.assertEqual(sorted(model_to_dict(bw, fields=['id', 'name'])), ['id', 'name'])
self.assertEqual(sorted(model_to_dict(bw, exclude=[])), ['id', 'name', 'score', 'writer_ptr']) self.assertEqual(sorted(model_to_dict(bw, exclude=[])), ['id', 'name', 'score', 'writer_ptr'])
self.assertEqual(sorted(model_to_dict(bw, exclude=['id', 'name'])), ['score', 'writer_ptr']) self.assertEqual(sorted(model_to_dict(bw, exclude=['id', 'name'])), ['score', 'writer_ptr'])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment