Проектирам приложение, в което потребителите изпращат/получават записи и бих искал изтриванията да бъдат разделени за всеки потребител, посочен в записа (изтриването на един потребител няма да скрие записа от другия потребител).
Моят дизайн на базовия модел изглежда така:
class BasePrivateMessage(TimeStampedModel):
accepted = models.NullBooleanField(default=None, null=True, blank=True)
# fields in question
archived_by_recipient = models.BooleanField(default=False)
archived_by_sender = models.BooleanField(default=False)
read = models.BooleanField(default=False,
help_text='Recipient has viewed.')
recipient = models.ForeignKey('accounts.CommonUserProfile',
related_name='%(class)s_received')
sender = models.ForeignKey('accounts.CommonUserProfile',
related_name='%(class)s_sent')
message_body = models.TextField()
Би ли било подобрение да се заменят полетата archived_by_xxxx
с ManyToManyField
до accounts.CommonUserProfile
, които са отговорни за съхраняването на списък с потребители, които са скрили (меко изтрили) записа? Изглежда, че това би направило клиентския код по-опростен. Как обикновено се прилага мекото изтриване за всеки потребител?