如何为新建Activity分配已有或新的参考产品?
为新建Activity分配参考产品的方法
要让新建的Activity“生成”产品,核心是创建**生产类型(production)**的交换项,并将其设为该Activity的参考产品。以下分两种场景实现:
1. 分配已有参考产品
先从数据库中查询到目标已有产品,再创建生产交换并标记为参考产品:
# 先新建Activity(沿用你的代码) a = db.new_activity( code="A", name="New activity" ) a.save() # 查询已有产品(示例:按名称查询,可根据实际调整查询条件) existing_product = db.query(db.Product).filter(db.Product.name == "已有产品名称").first() # 创建生产交换并设为参考产品 exchange = a.new_exchange( amount=1, # 产量,按需调整 input=existing_product, type="production", # 关键:类型设为production ) exchange.is_reference_product = True # 标记为参考产品 exchange.save()
2. 创建并分配新的参考产品
如果需要全新的产品作为参考,先创建产品对象,再关联为Activity的参考产品:
# 先新建Activity a = db.new_activity( code="A", name="New activity" ) a.save() # 创建新的产品 new_product = db.new_product( name="新参考产品", code="P001", unit="kg" # 按需设置单位 ) new_product.save() # 创建生产交换并设为参考产品 exchange = a.new_exchange( amount=5, # 产量,按需调整 input=new_product, type="production", ) exchange.is_reference_product = True exchange.save()
关键说明
- 参考产品本质是Activity的生产类型交换项,且需将
is_reference_product设为True,这对应你截图中界面里的“参考产品”勾选操作。 - 生产类型(
type="production")的交换代表Activity产出的产品,和你之前用的technosphere(技术输入)类型区分开。
内容的提问来源于stack exchange,提问作者Stücke
相关产品推荐
相关产品推荐

