[英]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.