список не обновляется при удалении элемента - PullRequest
0 голосов
/ 24 апреля 2019

Я пишу сервис для своего интерфейса, чтобы он использовал сервис обновлений, имеющий следующую форму полезной нагрузки. Однако, когда я добавляю некоторые навыки, например: ["Custom," Plumbing "] в моем skill_sub_category, все работает отлично, но когда я пытаюсь удалить навык из категории skill_sub_category, список не обновляется. Вот как выглядит моя полезная нагрузка для обновления custom_item:

{ "custom_items": [ { "item_name": "item_custom", "item_type": 1, «измерение»: «3 м²», "skill_sub_category": ["Custom", "Сантехника", "Ковер"], «цена»: «80», "клиент": "ДРУГОЙ", "Год": "2019", "items_source": 0, "id": 582}]}

Моя реализация выглядит следующим образом.

   def update_items(self, request, params={}, *args, **kwargs):
    """
    :param request:
    :param params:
    :param args:
    :param kwargs:
    :return:
    """
    logger.debug("Entering the gate of the update items function")
    logger.debug("** Params are being used ** :%s" % params)
    # print(params)
    logger.debug("** Params to be updated ** :%s" % params)
    for custom in params['custom_items']:
        item_name = custom['item_name']
        item_type = str(custom['item_type'])
        item_type = ItemType.objects.get(pk=item_type)
        measurement = sanitize_data(custom['measurement'])
        # measurement = custom['measurement'].replace("", u"²")
        category = custom['skill_sub_category']
        # year = custom['year'] # Frontenders do not want us to send through the year. which makes since
        client = str(custom['client'])
        client = Client.objects.get(name=client)
        # year = PriceList.objects.get(year=year) #so we commented that
        fee = custom['price']
        items_source = custom['items_source']
        get_sp = self.staff
        logger.debug("**Fetching the Staff :%s" % get_sp)
        fetched_spp = get_sp.sp_id
        logger.debug("**Fetching the SP_id **:%s" % fetched_spp)
        try:
            item = Item.objects.get(pk=custom['id'], item_creator=fetched_spp)
        except Item.DoesNotExist:
            continue

        item.name = item_name
        item.item_type = item_type
        item.measurement = measurement
        item.items_source = items_source
        item.item_creator = fetched_spp
        item.activation_status = Item.ACTIVE
        item.is_custom_items = True
        item.save()
        price = item.price.first()
        price.client = client
        price.fee = fee
        # price.price_list = year     # And it's still working this way
        price.save()
        which_items_is_being_updated = Item.objects.get(pk=custom['id'])
        get_item_updated = which_items_is_being_updated.id
        logger.debug('**Item updated is ** :%s' % get_item_updated)
        print (which_items_is_being_updated)
        for skill in SkillSubCategory.objects.filter(name__in=category):
            skill.item.add(item)
    return {"success": True, "message": "Item updated successfuly"}

Все остальное работает нормально, когда я обновляю skill_sub_category, удаляя навык. Может кто-нибудь подскажет, как решить проблему, когда навык нужно удалить из списка skill_sub_category?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...