Django-taggit 与 Django-treebeard 或合适的分类应用程序
Django-taggit with Django-treebeard or suitable Taxonomy app
环境:
Python 2.7.10
Django 1.11.3
问题
我需要一个分类系统而不仅仅是标签。例如:
- 艺术 > 数码插画
- 编程 > 网站 > Code Fights
- 编程 > 网站 > Hackerrank
- 编程 > 网站 > Code Fights > Arcade > Level One
- 编程 > 代码挑战
环顾四周,我发现 this post in Whosebug which led me to this blog post。
这让我得到了以下代码:
型号
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)
问题是当我去管理员添加分类法时,我得到以下字段:
- 姓名
- 鼻涕虫
- 路径
- 深度
- Numchild
最后两个不意味着要手动输入,所以说documentation of tree beard.
Do not change the values of path, depth or numchild directly: use one of the included methods instead. Consider these values read-only.
我继续尝试自己输入它们,因为 curiosity/stupidity,树断了。所以我不得不使用这个 hack 来修复它:
f = Taxonomy.objects.all()
from django.db.models import QuerySet
QuerySet.delete(f)
感谢用户“jrief”the hack。
另一个问题是我无法再通过管理员访问我的 Post 模型。我收到以下错误:
FieldDoesNotExist 在 /admin/main/post
Post 没有属性 'content_object'
请记住,这是我的第一个 Django 项目和应用程序。感谢您可能拥有的任何想法或一个好的 django 分类法应用程序,或者关于如何实现我需要的分类法的想法。
我最终使用了应用程序 Django Category,它非常棒。只需按照简单易懂的说明(几乎没有任何步骤!),一切都会按预期进行。
环境: Python 2.7.10 Django 1.11.3
问题 我需要一个分类系统而不仅仅是标签。例如:
- 艺术 > 数码插画
- 编程 > 网站 > Code Fights
- 编程 > 网站 > Hackerrank
- 编程 > 网站 > Code Fights > Arcade > Level One
- 编程 > 代码挑战
环顾四周,我发现 this post in Whosebug which led me to this blog post。
这让我得到了以下代码:
型号
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)
问题是当我去管理员添加分类法时,我得到以下字段:
- 姓名
- 鼻涕虫
- 路径
- 深度
- Numchild
最后两个不意味着要手动输入,所以说documentation of tree beard.
Do not change the values of path, depth or numchild directly: use one of the included methods instead. Consider these values read-only.
我继续尝试自己输入它们,因为 curiosity/stupidity,树断了。所以我不得不使用这个 hack 来修复它:
f = Taxonomy.objects.all()
from django.db.models import QuerySet
QuerySet.delete(f)
感谢用户“jrief”the hack。
另一个问题是我无法再通过管理员访问我的 Post 模型。我收到以下错误:
FieldDoesNotExist 在 /admin/main/post Post 没有属性 'content_object'
请记住,这是我的第一个 Django 项目和应用程序。感谢您可能拥有的任何想法或一个好的 django 分类法应用程序,或者关于如何实现我需要的分类法的想法。
我最终使用了应用程序 Django Category,它非常棒。只需按照简单易懂的说明(几乎没有任何步骤!),一切都会按预期进行。