Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ContentOnPageModelManager(models.Manager):
- def create(self, **kwargs):
- if 'order_nbr' not in kwargs:
- try:
- order_nbr = ContentOnPage.objects.filter(page=kwargs['page']).latest('order_nbr').values('order_nbr')[0]
- except ContentOnPage.DoesNotExist:
- order_nbr = 0
- # TODO (dmitry): race condition
- kwargs['order_nbr'] = order_nbr + 1
- return super().create(**kwargs)
- class ContentOnPage(models.Model):
- page = models.ForeignKey('Page', on_delete=models.CASCADE)
- video = models.ForeignKey('Video', null=True, on_delete=models.SET_NULL)
- audio = models.ForeignKey('Audio', null=True, on_delete=models.SET_NULL)
- text = models.ForeignKey('Text', null=True, on_delete=models.SET_NULL)
- order_nbr = models.PositiveIntegerField(default=0)
- kwargs['order_nbr'] = F(GROUP_BY('page').MAX('order_nbr')) + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement