簡體   English   中英

我無法向該用戶模型字段添加值

[英]I can't add a value to this user model field

我正在嘗試做一個系統,如果他問一個問題,用戶可以獲得積分,但是當用戶這樣做時,積分字段不會增加。

我的模型:

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)

當我轉到管理頁面中的當前用戶時,該值不會改變。

您應該使您的代碼更加清晰,但正如我所假設的那樣,正如 Thierno 所說,您沒有訪問該對象並且之后沒有保存它。

您需要做的是,一旦您發出post請求,——並且因為您需要訪問用戶——,保存您的發帖,然后執行類似以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM