django - model for a messaging app between users
django, django-models
Solution
My variant for common cases:
from django.utils.translation import ugettext_lazy as _
class Message(models.Model):
"""
A private message from user to user
"""
subject = models.CharField(_("Subject"), max_length=120, blank=True)
body = models.TextField(_("Body"))
sender = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='sender_messages', verbose_name=_("Sender"), )
recipient = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='receiver_messages', null=True, blank=True, verbose_name=_("Recipient"))
parent_msg = models.ForeignKey('self', related_name='next_messages', null=True, blank=True, verbose_name=_("Parent message"))
sent_at = models.DateTimeField(_("sent at"), null=True, blank=True)
read_at = models.DateTimeField(_("read at"), null=True, blank=True)
replied_at = models.DateTimeField(_("replied at"), null=True, blank=True)
sender_deleted_at = models.DateTimeField(_("Sender deleted at"), null=True, blank=True)
recipient_deleted_at = models.DateTimeField(_("Recipient deleted at"), null=True, blank=True)
ip = models.GenericIPAddressField(verbose_name=_('IP'), null=True, blank=True)
user_agent = models.CharField(verbose_name=_('User Agent'), blank=True, max_length=255)
Problem
How do I go about creating a message app, between users. What's the business logic for creating the model? All I can think of was like this: models.py ``` class Message(models.Model): description = models.TextField() date_added = models.DateTimeField(default=datetime.now) sender = models.ForeignKey(User) recipient = models.ForeignKey(User) ``` I am not very sure if this is the way to go. If you could kindly guide me on how to get started, will be very thank full. Thank you!