环境: Python 2.7.10 Django 1.11.3
问题 我需要一个分类系统而不仅仅是标签。例如:
- 艺术 > 数码插画
- 编程 > 网站 > 代码大战
- 编程 > 网站 > Hackerrank
- 编程 > 网站 > 代码战 > 街机 > 一级
- 编程 > 代码挑战
环顾四周,我在 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)
问题是当我去管理员添加分类时,我得到以下字段:
- 姓名
- 蛞蝓
- 小路
- 深度
- 数子
最后两个不是手动输入的,所以树胡子的文档说。
不要直接更改 path、depth 或 numchild 的值:改用其中一种包含的方法。将这些值视为只读。
我继续尝试自己输入它们,出于好奇/愚蠢,树坏了。所以我不得不使用这个 hack 来修复它:
f = Taxonomy.objects.all()
from django.db.models import QuerySet
QuerySet.delete(f)
感谢用户“jrief”的黑客攻击。
另一个问题是我无法再通过管理员访问我的Post模型。我收到以下错误:
/admin/main/post 处的 FieldDoesNotExist 帖子没有属性“content_object”
请记住,这是我的第一个 Django 项目和应用程序。感谢您可能有的任何想法或分类法的良好 django 应用程序,或关于如何实现我需要的分类法的想法。