0

この 2 日間ずっと考えていたのですが、どうすればいいのかわかりません。

モデル:

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

私がしたことは、2 つのフィールドを結合し、重複するレコードと ID を削除することだけでしたが、それだけではないと思います。では、views.py に関する作業例はありますか? SQLでこれを行うことは可能ですか?

ありがとう。

4

1 に答える 1

0

モデル フィールドの変更は「読み取り済み」で、ブール値でなければなりません

readed = models.BooleanField(default=False)

素敵なサードパーティのパッケージを実装できます

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

メッセージアプリでより多くのことを行うのに役立ちます。

于 2013-05-11T11:45:23.233 に答える