Strapi v5中已发布条目更新后变Modified,如何强制保持Published?
Strapi v5 内部API更新条目后保持发布状态的问题
我在Strapi v5中发现,用于修改数据条目的各类API表现存在不一致性。我的需求是:更新条目数据字段后,保持条目原状态——草稿条目仍为Draft,已发布条目更新后仍处于Published状态(而非变为Modified)。
此前通过外部调用Strapi API可以实现该需求,API路径为:
base_url_path/api/<collection_type>/<document_id>
调用该API后,条目会自动变为Published状态;若在路径末尾添加:
?status=draft
则条目会保持Draft状态。
最近需要将更新方式改为在Strapi插件代码中执行,但使用Strapi的documents API和entityService API时出现问题:更新已发布条目后,Strapi UI显示条目状态变为Modified,无法保持Published。我尝试过再次调用代码(不修改字段)强制发布,但Strapi要求必须修改数据,此方法无效。我也曾尝试在插件内部调用原外部API,结果仍是已发布条目更新后变为Modified——根据Strapi文档AI说明,系统会根据请求来源处理请求,插件内部请求与外部请求的处理方式不同。
请问:
- 是否存在方法,能在更新已发布条目字段后仍使其保持Published状态?
- 或者是否可以批量获取所有Modified状态的条目并强制发布?
目前其他功能都正常运行,仅这一细节无法解决,使用的是Strapi v5,感谢建议。
已尝试的方法
- 外部API:有效,但只能在Strapi外部执行
- documents API:修改数据后,已发布条目变为Modified状态
- entityService API:修改数据后,已发布条目变为Modified状态(已弃用)
API代码示例
外部API(Python)
url = f"{_BASE_URL}/api/{collection_type}/{doc_id}" token = os.getenv("STRAPI_TOKEN") headers = { "Content-Type": "application/json", "Authorization": f"Bearer {token}" } payload = { "data": { f"{field_to_update}": data_for_field } } # 根据条目当前状态处理:如果是草稿,需添加参数避免自动发布 if was_published == False: url = url + "?status=draft" with requests.Session() as session: try: response = session.put(url, headers=headers, json=payload) response.raise_for_status() logger.info(f"Updated {field_to_update} for {collection_type} {doc_id}") return True except requests.exceptions.RequestException as e: logger.error(f"Failed to update {field_to_update} for {collection_type} {doc_id}: {e}") if response.content: logger.error(f"Response content: {response.content.decode('utf-8')}") return False
documents API(TypeScript)
await strapi.documents('api::collection-type.collection-type').update({ documentId: documentId, data: { field: field_value }, status: "published" // 设置为"draft"可保持草稿状态,但设为"published"仍会让条目变成Modified });
entityService API(TypeScript,已弃用)
await strapi.entityService.update('api::collection-type.collection-type', docId, { data: { "field_name": field_value, } });
内容的提问来源于stack exchange,提问作者Edward Kaminski
相关产品推荐
相关产品推荐

