Guest User

Untitled

a guest
Mar 21st, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.03 KB | None | 0 0
  1. class Item(models.Model):
  2.     name = models.CharField(max_length=120)
  3.     price = models.DecimalField(max_digits=6, decimal_places=2)
  4.     description = models.TextField(blank=True)
  5.     rating = models.IntegerField(default=0, editable=False)
  6.     images = models.ManyToManyField('Picture', related_name='item_images')
  7.  
  8.     def save(self, *args, **kwargs):
  9.         if Review.objects.filter(item_id=self.id):
  10.             self.rating = Review.objects.filter(item_id=self.id).aggregate(Avg('rating'))['rating__avg']
  11.         super(Item, self).save(*args, **kwargs)
  12.  
  13.  
  14. class Review(models.Model):
  15.     ratings = (
  16.         (1, '1'),
  17.         (2, '2'),
  18.         (3, '3'),
  19.         (4, '4'),
  20.         (5, '5'),
  21.     )
  22.  
  23.     user = models.ForeignKey(AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL)
  24.     item = models.ForeignKey('items.Item', on_delete=models.CASCADE)
  25.     text = models.TextField()
  26.     rating = models.IntegerField(choices=ratings)
  27.  
  28.     def __str__(self):
  29.         return 'Review #{} from {}'.format(self.id, self.user.username)
Advertisement
Add Comment
Please, Sign In to add comment