我试图做一个系统,用户获得点,如果他问了一个问题,但点字段没有增加,当用户这样做。
我的模特:
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)
当我转到管理页面中的当前用户时,该值没有更改。
1条答案
按热度按时间ovfsdjhp1#
您应该增加代码的清晰度,但正如我可以假设的那样,正如Thierno所说,您不是在访问对象,也不是在以后保存它。
您需要做的是在发出
post
请求后--由于您需要访问用户--保存您的帖子,然后执行以下操作: