如何使用户在Django中评价自己?

自从我尝试创建系统的一部分以来已经有几天了,但是我没有成功。我希望有一个指导方针,使用户对自己进行评分(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')

本文链接:https://www.f2er.com/3113178.html

大家都在问