创建消息收件箱(来自Django模型)?

时间:2018-09-16 18:47:41

标签: python html django

我正在尝试为用户消息设计一个收件箱。我有消息模型,正在尝试显示创建的消息。

models.py

class Message(models.Model): 
    subject = models.TextField(max_length=1000, blank=True)
    text = models.TextField(max_length=10000, blank=True)
    sender = models.ForeignKey(
                    settings.AUTH_USER_MODEL,
                    on_delete=models.CASCADE,
                    null = True, 
                    related_name="sender"
                    )
    receiver = models.ForeignKey(
                    settings.AUTH_USER_MODEL,
                    on_delete=models.CASCADE,
                    null = True, 
                    related_name="receiver"
                    )    

profile.html

## SIDE BAR (COLUMN 1) 
<div class="tbody">
    {% for message in received %}
    <div class="ui card mcard" onclick="openMessage(--insert--here)">
        <div class="content">
            <div class="header">{{message.subject}}</div>
                 <div class="text">{{message.text}}</div>
            </div>
        </div>      
    {% endfor %}                
</div>

## COLUMN 2

<div class="ui column"> 
    <div class="row">
        <div id="subject">     </div>
        <div id="firstname">    </div>
        <div id="lastname">     </div>
    </div>
    <div class="row" id="text"> </div>
</div> 

我在可滚动的侧栏中显示了消息列表(仅主题和发件人)。当您单击卡上的特定消息时,我希望所有内容都显示在主(右)列中。如果您知道其外观,基本上就是Apple Mail的工作方式。

我无法在正确的列中显示内容,因为我无法将Django Message对象传递给该函数(因为它基本上是运行循环来创建卡片)。有相对简单的解决方案吗?

TLDR-基本上,单击每个消息卡时,填充主题的innerHTML,发件人的名字和姓氏,文本。

1 个答案:

答案 0 :(得分:0)

将消息的ID存储在data属性中(请参见此处:https://www.w3schools.com/tags/att_global_data.asp

比起您可以使用jquery来获取数据,例如id

$(this).data("id")

比起您可以调用服务器来使用ajax检索消息并填充页面的右侧部分。