Я не могу добавить значение в это поле модели пользователя
Я пытаюсь сделать систему, в которой пользователь набирает очки, если задает вопрос, но поле очков не увеличивается, когда пользователь это делает.
моя модель:
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.PROTECT, related_name='post')
category = models.ForeignKey(Category, on_delete=models.PROTECT)
type = models.CharField(max_length=30, choices=TYPE, default='Question')
title = models.CharField(max_length=100, unique=True)
content = models.TextField()
views = models.IntegerField(default=0)
votes = models.ManyToManyField(User, blank=True, related_name='vote')
featured = models.BooleanField(default=False)
date_posted = models.DateTimeField(default=timezone.now)
Мое мнение:
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
success_url = '/'
fields = ['title', 'content', 'category']
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.author.points + 15
return super().form_valid(form)
Когда я перехожу к текущему пользователю на странице администратора, значение не меняется.
Вам следует добавить больше ясности в ваш код, но как я могу предположить и как сказал Тьерно, вы не обращаетесь к объекту и не сохраняете его после этого.
Что вам нужно сделать, так это после того, как вы сделаете свой post
запрос, - и поскольку вам нужен доступ к пользователю - сохранить свое сообщение, а затем сделать что-то вроде:
post_user = self.request.user
post_user_points +=15
post_user.save()