pulseapi/creators/models.py (25 lines of code) (raw):
"""
The creator field for an entry. Can be empty, just a name,
or linked to a pulse user
"""
from django.db import models
class EntryCreator(models.Model):
"""
A bridge model to describe a relationship between profiles
as creators and entries.
"""
entry = models.ForeignKey(
'entries.Entry',
on_delete=models.CASCADE,
related_name='related_entry_creators',
)
profile = models.ForeignKey(
'profiles.UserProfile',
on_delete=models.CASCADE,
related_name='related_entry_creators',
)
def __str__(self):
return 'Creator {creator} for "{entry}"'.format(
entry=self.entry.title,
creator=self.profile.name,
)
class Meta:
verbose_name = 'Entry Creators'
# This meta option creates an _order column in the table
# See https://docs.djangoproject.com/en/1.11/ref/models/options/#order-with-respect-to for more details
order_with_respect_to = 'entry'
indexes = [
models.Index(fields=['entry', '_order'], name='uk_entrycreator_entryid_order'),
models.Index(fields=['entry', 'profile'], name='uk_entrycreator_entry_profile')
]
unique_together = ('entry', 'profile',)