Django用户提问获积分功能异常:points字段未增长
问题原因及解决方案
核心问题
你在form_valid方法里只执行了form.instance.author.points + 15的计算,但既没把计算结果赋值回用户的points字段,也没将用户对象保存到数据库,所以后台里的用户积分不会有变化。
修正后的视图代码
class PostCreateView(LoginRequiredMixin, CreateView): model = Post success_url = '/' fields = ['title', 'content', 'category'] def form_valid(self, form): form.instance.author = self.request.user # 更新并保存用户积分 user = self.request.user user.points += 15 user.save() return super().form_valid(form)
额外说明
- 调用
user.save()是关键,它会把更新后的积分持久化到数据库中。 - 确认你的User模型里确实存在
points字段,且是数值类型(比如IntegerField(default=0))。
内容的提问来源于stack exchange,提问作者nameless
相关产品推荐
相关产品推荐

