django 我无法向此用户模型字段添加值

55ooxyrt  于 2022-12-14  发布在  Go
关注(0)|答案(1)|浏览(119)

我试图做一个系统,用户获得点,如果他问了一个问题,但点字段没有增加,当用户这样做。
我的模特:

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)

当我转到管理页面中的当前用户时,该值没有更改。

ovfsdjhp

ovfsdjhp1#

您应该增加代码的清晰度,但正如我可以假设的那样,正如Thierno所说,您不是在访问对象,也不是在以后保存它。
您需要做的是在发出post请求后--由于您需要访问用户--保存您的帖子,然后执行以下操作:

post_user = self.request.user 
post_user_points +=15
post_user.save()

相关问题