簡體   English   中英

如何使用Django ORM獲取所有聯系人和消息?

[英]How to use Django ORM to get all contacts and messages?

最近兩天我一直在想它,但我不知道該怎么做。

楷模:

class Messages(models.Model):
    sender = models.ForeignKey(User, verbose_name="Sender", related_name='sender_user')
    receiver = models.ForeignKey(User, verbose_name="Receiver", related_name='receiver_user')
    readed = models.BooleanField('Readed')
    date_time = models.DateTimeField('Time', auto_now=True)
    message = models.CharField('Message', max_length=255)

在頁面中,我需要一個唯一的聯系人列表(沒有我的聯系人),並按date_time排序未讀郵件。 例如,在表中我們可以看到:

+----+-----------+-------------+--------+---------------------+--------------------------+
| id | sender_id | receiver_id | readed | date_time           | message                  |
+----+-----------+-------------+--------+---------------------+--------------------------+
|  1 |         1 |           2 |      0 | 2013-05-10 17:53:53 | 14124141                 |
|  2 |         2 |           1 |      0 | 2013-05-10 18:13:16 | 2131231 abf        |
|  3 |         2 |           1 |      0 | 2013-05-10 18:17:29 | 52525252                 |
|  4 |         1 |           3 |      0 | 2013-05-10 20:00:52 | 12312312312              |
+----+-----------+-------------+--------+---------------------+--------------------------+

一個頁面中必須有2個聯系人:

3 | 1 unread

2 | 2 unread

我要做的就是合並兩個字段,刪除重復的記錄和我的ID,但是我認為,還不是全部。 那么,有關views.py的任何工作示例? 是否可以使用SQL執行此操作?

謝謝。

對模型字段的更改“已讀”,必須為布爾值

readed = models.BooleanField(default=False)

您可以實施一個不錯的第三方套餐

https://github.com/philomat/django-persistent-messages

這可以幫助您使用“消息”應用執行更多操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM