Django rest framework пользователь зарабатывает очки

Как сделать точечную схему в django? Например, каждый раз, когда я отправляю сообщение и ответ true, пользователь получает очко, а когда он отправляет сообщение с id ответа и ответ True, пользователь получает больше очков

Сначала вы должны расширить модель пользователя django auth другой моделью, например, UserProfile.

class UserProfile(AbstractUser):  
    user = models.OneToOneField(User)  
    points = models.IntegerField(default=0)

class Posts(AbstractUser):  
    user = models.ForeignkeyField(User)  
    content= models.Textfield(default="")

Тогда с помощью сигналов django вы можете обновлять связанную точку пользователя каждый раз, когда создается сообщение.

from django.db.models.signals import pre_save, post_save
from django.dispatch import receiver
from posts.models import Post


@receiver(post_save, sender=Posts)
def post_created(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.filter(user=instance.user).update(points=F('points') + Value(25))
Вернуться на верх