Итак, у меня есть 3 категории. во-первых, без детей, у второго всегда есть ребенок, но иногда нет родителя, а иногда
а третья категория всегда без родителя.
И моя цель - пройти эти 3 категории, начиная снизу вверх.
сначала мне нужно проверить категорию без ребенка, затем категорию secodn, а затем третье.
если мое условие выполнено, я просто отображаю сообщение, если условия не выполняются, я перехожу в другую категорию и проверяю условие.
так что я написал этот код, и это вроде нормально, но, возможно, я мог бы сделать это, не повторяя себя, и сделать свой код более простым?
msg = _("some %s %s message: %s.")
msgs = []
for line in order.order_line:
parent_id = line.product_id.categ_id.parent_id
parent_parent = line.product_id.categ_id.parent_id
categ_id = line.product_id.categ_id
categorys = parent_id + parent_parent + categ_id
categorys = parent_id + parent_parent + categ_id
for categ in categorys:
if not categ.childs_id and categ.qty_for_discount:
if line.product_qty < categ.qty_for_discount:
msgs.append(
msg % (
categ.qty_for_discount - line.product_qty,
line.product_id.uom_id.name,
categ.name
)
)
elif categ.parent_id and categ.child_id and categ.qty_for_discount:
if line.product_qty < categ.qty_for_discount:
msgs.append(
msg % (
categ.qty_for_discount - line.product_qty,
line.product_id.uom_id.name,
categ.name
)
)
else:
if line.product_qty < categ.qty_for_discount:
msgs.append(
msg % (
categ.qty_for_discount - line.product_qty,
line.product_id.uom_id.name,
categ.name
)
)