2016-07-08 47 views
0

所以我有这个简单的叫做Post的django模型,它包含一些关于发布消息和自己发布消息的用户的日期。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被保存时,我需要从文本字段捕获标记,并以某种方式将它们放置在多个关系中,以便我能够执行诸如“tag.posts”之类的操作,以便通过此标记或其他方式获取所有帖子。我有算法来捕获标签,但我坚持实现这种在创建/编辑/保存Post时创建标签对象的自动方式。我已经尝试覆盖保存方法,创建管理器或收听post_save信号,但它不起作用。

这是如何实施最好的?先谢谢你!

回答

1

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

+0

我将如何实现类之间的many2many链接。我读了很多2many字段不能创建在这一点上,因为它自己的模型还没有创建。 – HugoCodes

+0

你将不得不在创建帖子后保存表单。 –

+0

这样做会迫使我创建一个用于编辑/创建的自定义管理表单,是吗? – HugoCodes