mirror of
https://github.com/Hopiu/django-modeltranslation.git
synced 2026-05-09 22:04:48 +00:00
Merge pull request #419 from tochev/fix-select-related-reset
Fix reset of .select_related
This commit is contained in:
commit
c739a1e8b3
2 changed files with 19 additions and 1 deletions
|
|
@ -255,7 +255,10 @@ class MultilingualQuerySet(models.query.QuerySet):
|
|||
# new_args = append_lookup_keys(self.model, fields)
|
||||
new_args = []
|
||||
for key in fields:
|
||||
new_args.append(rewrite_lookup_key(self.model, key))
|
||||
if key is None:
|
||||
new_args.append(None)
|
||||
else:
|
||||
new_args.append(rewrite_lookup_key(self.model, key))
|
||||
return super(MultilingualQuerySet, self).select_related(*new_args, **kwargs)
|
||||
|
||||
# This method was not present in django-linguo
|
||||
|
|
|
|||
|
|
@ -2966,6 +2966,21 @@ class TestManager(ModeltranslationTestBase):
|
|||
o.title = "bla"
|
||||
self.assertEqual(o.title, "bla")
|
||||
|
||||
def test_select_related(self):
|
||||
test = models.TestModel.objects.create(title_de='title_de', title_en='title_en')
|
||||
with auto_populate('all'):
|
||||
models.ForeignKeyModel.objects.create(untrans=test)
|
||||
|
||||
fk_qs = models.ForeignKeyModel.objects.all()
|
||||
self.assertNotIn('_untrans_cache', fk_qs[0].__dict__)
|
||||
self.assertIn('_untrans_cache', fk_qs.select_related('untrans')[0].__dict__)
|
||||
self.assertNotIn(
|
||||
'_untrans_cache',
|
||||
fk_qs.select_related('untrans').select_related(None)[0].__dict__
|
||||
)
|
||||
# untrans is nullable so not included when select_related=True
|
||||
self.assertNotIn('_untrans_cache', fk_qs.select_related()[0].__dict__)
|
||||
|
||||
def test_translation_fields_appending(self):
|
||||
from modeltranslation.manager import append_lookup_keys, append_lookup_key
|
||||
self.assertEqual(set(['untrans']), append_lookup_key(models.ForeignKeyModel, 'untrans'))
|
||||
|
|
|
|||
Loading…
Reference in a new issue