0
私は、ユーザーのプライベートメッセージアプリケーションを作成したいと考えています。
Djangoユーザのpriveteメッセージシステム。ユーザーの削除処理
class Message(models.Model):
title = models.CharField(max_length = 60)
mssg_from = models.ForeignKey(User, related_name = 'message_from')
mssg_to = models.ForeignKey(User, related_name = 'message_to')
text = models.TextField()
reciver_deleted = BooleanField(default = False)
sender_deleted = BooleanField(default = False)
delivery_date = models.DateTimeField(auto_now = True, auto_now_add = False)'message_from')
私は両方のユーザーがそれを削除した場合にのみ、データベースからメッセージを削除する:
メッセージ・モデルは、次のようになります。
私はビューでそれを行う方法を知っています(なぜそれが私はブール値のフィールドを作成しました)...
ユーザを削除するとどうなりますか?どのようにそれを処理するには?
secoundユーザーが削除された場合でも、メッセージをユーザーに使用可能にしたいと考えています。
しかし、ユーザーを削除してメッセージを残す場合、ForeignKeyの1つは存在しないユーザーを参照します。
このような状況での対応方法は?その後、
mssg_from = models.ForeignKey(User, related_name = 'message_from', null=True, on_delete=models.SET_NULL)
mssg_to = models.ForeignKey(User, related_name = 'message_to', null=True, on_delete=models.SET_NULL)
あなたは、ユーザーのいずれかを削除すると、対応するフィールドがNULLに設定されます。
dbスキームを変更したくない場合は、偽のユーザーを追加して、削除されたユーザーのメッセージをこのユーザーに関連付けることができます。残りのユーザー(実際の残りのユーザー)がメッセージを削除するまで。 –