【发布时间】:2022-12-25 04:50:48
【问题描述】:
我正在尝试做一个系统,如果他问一个问题,用户可以获得积分,但是当用户这样做时,积分字段不会增加。
我的模型:
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)
当我转到管理页面中的当前用户时,该值不会改变。
【问题讨论】:
-
首先这是不正确的
form.instance.author.points +15它应该是form.instance.author.points += 15 -
其次,您必须将其保存在数据库中。
标签: python django django-models django-views