自从我尝试创建系统的一部分以来已经有几天了,但是我没有成功。我希望有一个指导方针,使用户对自己进行评分(5星评分),并在数据库中对每个用户进行评分,以便以后进行操作。我正在扩展AbstractUser类以添加新的信息,另外一个以我的用户fk进行评估,但是我想不出更多。如果有人可以帮助我,我会很感激!
WIND888888 回答:如何使用户在Django中评价自己?
此解决方案对我有效。在将fk CustomUser创建为Rate类后,我为用户扩展了AbstractUser类:
class CustomUser(AbstractUser):
imagem = StdImageField('Imagem',upload_to='photos',variations={
'thumb':
{
'width': 100,'height': 100,'crop': True
}
})
@property
def avg_rating(self):
# all_ratings = map(lambda x: x.rating,self.rate_set.all())
return self.rate_set.all().aggregate(
media=Avg('rating'))['media']
@property
def count_rating(self):
return self.rate_set.all().count()
def __str__(self):
return self.username
"""
Class that represents the assessment itself. Here is the note,the user
who extends RatedUser - as if it were an extension of the User class
twice.
"""
class Rate(models.Model):
RATING_CHOICES = (
(1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'),)
# RATING_CHOICES = zip(range(6),range(6))
rated_user = models.ForeignKey(CustomUser,on_delete=models.CASCADE)
rating = models.IntegerField(choices=RATING_CHOICES)
# rating = models.SmallIntegerField(choice=RATING_CHOICES)
def get_absolute_url(self):
return reverse('list_users')