環境: Python 2.7.10 Django 1.11.3
問題 タグだけでなく、分類法システムが必要です。例えば:
- アート > デジタルイラスト
- プログラミング > ウェブサイト > コードファイト
- プログラミング > ウェブサイト > Hackerrank
- プログラミング > Web サイト > コードファイト > アーケード > レベル 1
- プログラミング > コードの課題
周りを見回すと、StackOverflow でこの投稿が見つかり、このブログ投稿にたどり着きました。
これにより、次のコードにたどり着きました。
モデル
class Taxonomy (TagBase, MP_Node):
node_order_by = ['name']
class TaggedPost (ItemBase):
content_object = models.ForeignKey('Post')
tag = models.ForeignKey('Taxonomy', related_name='tags')
class Post(ItemBase):
tags = TaggableManager(through=TaggedPost, blank=True)
管理者
admin.site.register(Taxonomy, TreeAdmin)
問題は、管理者に移動してタクソノミーを追加すると、次のフィールドが表示されることです。
- 名前
- ナメクジ
- 道
- 深さ
- ナムチャイルド
最後の 2 つは手で入力することを意図していないため、tree beard のドキュメントに記載されています。
path、depth、または numchild の値を直接変更しないでください。代わりに、含まれているメソッドのいずれかを使用してください。これらの値は読み取り専用であると考えてください。
好奇心/愚かさのために、先に進んで自分で入力しようとしたところ、ツリーが壊れました。したがって、このハックを使用して修正する必要がありました。
f = Taxonomy.objects.all()
from django.db.models import QuerySet
QuerySet.delete(f)
ハックのユーザー「jrief」に称賛を。
もう 1 つの問題は、管理者経由でPostモデルにアクセスできなくなったことです。次のエラーが表示されます。
/admin/main/post の FieldDoesNotExist 投稿には属性「content_object」がありません
これは私の最初の Django プロジェクトとアプリであることを覚えておいてください。あなたが持っているかもしれないアイデアや分類のための良いジャンゴアプリ、または私が必要とする分類を実装する方法に関するアイデアを高く評価してください。