我需要生成一個用戶流。我在Django 1.5中使用內容類型框架,我正在使用第三方軟件包'Phileo(喜歡),Django-Posts(用於發佈),Dialogos(評論)在Django中創建活動流
我有一篇文章,評論,贊,沿着連接與事件數據庫模型
這裏是我的日誌模型看起來像
class Post(models.Model):
text = models.TextField(_("Text"))
.... # no GenericForeignKey
這裏是我的評論型號
class Comment(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.IntegerField()
content_object = GenericForeignKey()
comment = models.TextField()
這裏是我的UserEvent型號
class UserEvent(models.Model):
event = models.ForeignKey(Event)
data_type = models.ForeignKey(ContentType, null=True)
data_id = models.PositiveIntegerField(null=True)
data_object = generic.GenericForeignKey('data_type', 'data_id')
class Event(models.Model):
eventId = models.CharField(max_length=100)
title = models.CharField(max_length=200, default="untitled")
的UserEvent包含諸如用戶的所有活動(的loggedIn,loggedOut,註冊,創建信息,對信息發表評論,喜歡的訊息等)。
Q - 1 * 會有什麼到了它的創建活動流的最佳方式。 *
如果我這樣做feeds = UserEvents.object.all()
和模板,我可以做..
{% for item in feeds%}
{% if item.data_type.name == 'post' %}
{{ item.data_object.text }}
<!-- Show post -->
{% endif %}
{% if item.data_type.name == 'connection' %}
<!-- Show User 3 and User 5 are now friend -->
{% endif %}
{% endfor %}
但問題是Post
沒有外鍵Comments
模型。
Q - 2那麼,我該如何顯示與帖子相關的評論。我真的不想使用'模板標籤'。另一個解決方法是,我把comments = generic.GenericRelation(Comment)
放在郵政模型,但我想通用(我相信UserEvent有所有相關項目),因爲在將來我有更多的模型..像'共享','標籤','喜歡'等..我需要把所有通用關係放在我的POST中。
class Like(models.Model):
sender = models.ForeignKey(AUTH_USER_MODEL, related_name="liking")
receiver_content_type = models.ForeignKey(ContentType)
receiver_object_id = models.PositiveIntegerField()
receiver = generic.GenericForeignKey(
ct_field="receiver_content_type",
fk_field="receiver_object_id"
)
好的..我保存UserEvent已經..問題是如何獲得它的評論,並保持它的通用..看到我的模板.. UserEvent正在爲我工作,但我不知道如何從中獲取數據它.. –
UserEvent已經在錄製用戶的活動,如(loggedIn,loggedOut,SignUp,Create Post,Post on Post,Like a Post等)。你看到帖子有沒有外鍵的評論,喜歡等,所以如何包括他們,而查詢UserEvent? –
這可能是你在第二季度引用的內容,但是你可以在Post中創建一個@property像def comments(self):從通用關係返回與這篇文章相關的評論列表..並且對文章等做同樣的事情?在某處,如何獲得每個評論的定義將不得不完成...... – PhoebeB