削除されたトピックの `external_id` の再利用

Linuxdojo/catalogbot の統合で、トピックの自動作成に external_id 機能を使用しています。しかし、トピックを削除した場合、同じ external_id を持つ新しいトピックを作成できず、代わりに以下のエラーが発生することに気づきました。

{'action': 'create_post', 'errors': ['External has already been taken']}

使用されていたトピックが削除された後、同じ external_id を再利用することは可能でしょうか?

ユーザーオブジェクトのカスタムフィールドを使用した回避策が他で議論されていることは承知していますが、トピックオブジェクトはカスタムフィールドをサポートしていないようです。何か方法はありますか?

それは、削除されたトピックはデータベースから削除されるのではなく、削除済みとしてマークされるためです。IDを別のトピックに関連付けたいというのは、悪い考えのように思えます(しかし、あなたは尋ねませんでした)。トピックを実際に削除するように強制することができます(投稿の完全削除機能の紹介がその方法かもしれません)。

@pfaffman様\n\nご提案いただき、また、external_idの再利用全般について再考するきっかけをいただき、誠にありがとうございます。

「いいね!」 1

それらの整数が本当に高価でない限り? :thinking:

(私が皮肉ではなく役に立ったようで嬉しいです!)良い解決策が見つかることを願っています。

課題は、統合しているアプリ(CatalogIt - 読み取り専用APIを公開)の制限により、トピックのexternal_idに使用している値の変更が困難である(手動操作)ことです。開発中はトピックを手動で削除して再作成することがよくあります(これは統合のすべてであり、ユーザーが「このアイテムを議論する」リンクをクリックすると、CatalogItのアイテムのディスカッショントピックが作成されます)。そのため、毎回この値を変更する必要があります。トピックを削除した後、この値が変更されずに、後でユーザーが「このアイテムを議論する」リンクをクリックすると、「external already taken」エラーが発生します。

アーカイブが削除よりも良いアイデアかもしれません。あるいは、表示/非表示のメカニズムを利用できるかもしれません。Discourseには詳しくないので、調査が必要ですが、調べて何か見つけられるか試してみます。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.