我試圖創建一個模型管理器的自定義功能,建立與字段的值,在經理的自定義函數:我需要從一個模型
class MessageManager(models.Manager):
# Return body from last child message
def get_last_child_body(self):
if self.has_childs:
last_child = self.filter(parent_msg=self.id).order_by('-send_at')[0]
return last_child.body
我想用這個功能(「get_last_child_body」 )in template
{% message.get_last_child_body %}
從表格消息中插入的最後一個子消息中檢索正文。
消息模型:
class Message(models.Model):
sender = models.ForeignKey(User, related_name='sent_messages')
recipient = models.ForeignKey(User, related_name='received_messages')
parent_msg = models.ForeignKey('self', related_name='next_messages', null=True, blank=True)
has_childs = models.BooleanField()
subject = models.CharField(max_length=120)
body = models.TextField()
send_at = models.DateTimeField()
read_at = models.DateTimeField(null=True, blank=True)
replied_at = models.DateTimeField(null=True, blank=True)
sender_deleted_at = models.DateTimeField(null=True, blank=True)
recipient_deleted_at = models.DateTimeField(null=True, blank=True)
objects = MessageManager()
def get_last_child(self):
if not self.has_childs:
return None
class Meta:
get_latest_by = 'send_at'
ordering = ['-send_at']
嗯,我猜這個問題位於「ID」從管理的自定義功能。我必須通過父消息ID,但我不知道我該怎麼做。
它不報告任何錯誤,它只是不顯示任何模板。
任何想法?
你爲什麼認爲這應該在經理?爲什麼不在模型上,就像'get_last_child'? –
爲此,我一直在尋找django文檔和互聯網上的信息,我不知道爲什麼,但我認爲這是最好的方式。 我錯了嗎? –
好吧,我試着把模型上的get_last_child_body放在你對我說的模型上。它不運行。 –