2016-07-28 9 views
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に設定されます。

+0

dbスキームを変更したくない場合は、偽のユーザーを追加して、削除されたユーザーのメッセージをこのユーザーに関連付けることができます。残りのユーザー(実際の残りのユーザー)がメッセージを削除するまで。 –

答えて

0

あなたはあなたにFKのフィールドを修正することができます。

関連する問題