2016-07-08 83 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