diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 9b446ff9e..b804739ad 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -5021,7 +5021,13 @@ class Basket(FullSearch, OwnPerms, ValueGetter, TemplateItem):          :param ishtaruser: if provided an alternate user is used          :return: the new basket          """ -        items = list(self.items.all()) +        items = [] +        through = self.items.through +        basket_pk = "{}_id".format(self.SLUG) +        item_pk = "{}_id".format(self.items.model.SLUG) +        q = through.objects.filter(**{basket_pk: self.pk}) +        for r in q.values("pk", item_pk).order_by("pk").all(): +            items.append(r[item_pk])          new_item = self          new_item.pk = None          if ishtaruser: @@ -5034,7 +5040,7 @@ class Basket(FullSearch, OwnPerms, ValueGetter, TemplateItem):          new_item.label = label          new_item.save()          for item in items: -            new_item.items.add(item) +            through.objects.create(**{basket_pk: new_item.pk, item_pk: item})          return new_item | 
