Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. class ContentOnPageModelManager(models.Manager):
  2.  
  3. def create(self, **kwargs):
  4. if 'order_nbr' not in kwargs:
  5. try:
  6. order_nbr = ContentOnPage.objects.filter(page=kwargs['page']).latest('order_nbr').values('order_nbr')[0]
  7. except ContentOnPage.DoesNotExist:
  8. order_nbr = 0
  9. # TODO (dmitry): race condition
  10. kwargs['order_nbr'] = order_nbr + 1
  11. return super().create(**kwargs)
  12.  
  13.  
  14.  
  15. class ContentOnPage(models.Model):
  16.  
  17. page = models.ForeignKey('Page', on_delete=models.CASCADE)
  18. video = models.ForeignKey('Video', null=True, on_delete=models.SET_NULL)
  19. audio = models.ForeignKey('Audio', null=True, on_delete=models.SET_NULL)
  20. text = models.ForeignKey('Text', null=True, on_delete=models.SET_NULL)
  21. order_nbr = models.PositiveIntegerField(default=0)
  22.  
  23. kwargs['order_nbr'] = F(GROUP_BY('page').MAX('order_nbr')) + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement