random_data.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:planet-b-saleor 作者: planet-b 项目源码 文件源码
def set_variant_attributes(variant, product_class):
    attr_dict = {}
    existing_variants = variant.product.variants.values_list('attributes',
                                                             flat=True)
    existing_variant_attributes = defaultdict(list)
    for variant_attrs in existing_variants:
        for attr_id, value_id in variant_attrs.items():
            existing_variant_attributes[attr_id].append(value_id)

    for product_attribute in product_class.variant_attributes.all():
        available_values = product_attribute.values.exclude(
            pk__in=[int(pk) for pk
                    in existing_variant_attributes[str(product_attribute.pk)]])
        if not available_values:
            return
        value = random.choice(available_values)
        attr_dict[str(product_attribute.pk)] = str(value.pk)
    variant.attributes = attr_dict
    variant.save(update_fields=['attributes'])
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号