【问题标题】:Automatic tagging in djangodjango中的自动标记
【发布时间】:2016-07-08 15:21:57
【问题描述】:

所以我有一个名为 Post 的简单 django 模型,其中包含发布消息的用户的一些日期以及它自己的消息。

class Post(models.Model):
     user = models.ForeignKey(settings.AUTH_USER_MODEL,
     related_name="posts",null=False)
     text = models.CharField(max_length=400)
     date_created = models.DateField(auto_now_add=True,auto_now = False)
     date_modified = models.DateField(auto_now=True)
     tags = models.ManyToManyField(Tag,related_name="posts")

而且我需要实现一个像 twitter 一样的标记系统。因此,当 Post 被保存时,我需要从文本字段中捕获标签并以某种方式将它们放置在 many2many 关系中,以便我能够执行“tag.posts”之类的操作来获取所有带有此标签的帖子或其他方式.我有捕获标签的算法,但我坚持在创建/编辑/保存帖子时实现这种自动创建标签对象的方式。我已经尝试过覆盖保存方法,创建管理器或收听 post_save 信号,但它不起作用。

如何最好地实施?提前谢谢!

【问题讨论】:

    标签: python django django-models tags


    【解决方案1】:

    我的建议是捕获 pre_save 信号并创建不存在的标签。

    【讨论】:

    • 我将如何实现类之间的 many2many 链接。我读到当时无法创建 many2many 字段,因为它自己的模型尚未创建。
    • 您必须在创建帖子后保存表单。
    • 这样做会迫使我创建一个自定义管理表单来编辑/创建,对吗?
    猜你喜欢
    • 2010-10-30
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多