【问题标题】:Django-taggit with Django-treebeard or suitable Taxonomy appDjango-taggit 与 Django-treebeard 或合适的分类应用程序
【发布时间】:2017-08-29 20:19:09
【问题描述】:

环境: Python 2.7.10 Django 1.11.3

问题 我需要一个分类系统而不仅仅是标签。例如:

  • 艺术 > 数字插图
  • 编程 > 网站 > 代码大战
  • 编程 > 网站 > Hackerrank
  • 编程 > 网站 > Code Fights > 街机 > 一级
  • 编程 > 代码挑战

环顾四周,我在 StackOverflow 中找到了 this post,这让我找到了这个 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.

表示

不要直接更改 path、depth 或 numchild 的值:改用包含的方法之一。将这些值视为只读。

出于好奇/愚蠢,我继续尝试自己输入它们,结果树坏了。所以我不得不使用这个 hack 来修复它:

f = Taxonomy.objects.all()
from django.db.models import QuerySet
QuerySet.delete(f)

感谢the hack 的用户“jrief”。

另一个问题是我无法再通过管理员访问我的 Post 模型。我收到以下错误:

FieldDoesNotExist 在 /admin/main/post 帖子没有属性“content_object”

请记住,这是我的第一个 Django 项目和应用程序。感谢您可能有的任何想法或分类法的良好 django 应用程序,或关于如何实施我需要的分类法的想法。

【问题讨论】:

    标签: django tags taxonomy django-taggit django-treebeard


    【解决方案1】:

    我最终使用了应用程序Django Category,它非常棒。只需按照简单的说明(几乎没有任何步骤!),一切都会按预期进行。

    【讨论】:

      猜你喜欢
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      相关资源
      最近更新 更多