编辑列并将数据从views.py Django发送到数据库

时间:2020-05-13 21:28:43

标签: python django

我的问题是我无法直接在views.py中进行查询。我正在编写允许用户参加测试的应用程序。但是问题是,当我从测试页向我的views.py发送填充的表单并调用form.save()时,查询不是在确切的时间进行的,因此我无法在下一行代码中编辑此查询。有什么办法可以解决这个问题?发送某种形式? 下面是我的代码 views.py:

if form is valid:
    form.save()     #i send data to DB
    choiceIndex = Choice.objects.latest('id').id
    choice = Choice.objects.get(pk=choiceIndex)
    choice.user = Users.objects.get(name=username)
    choice.save()   #i want to edit column made earlier
    return redirect("detail", question_id)         

models.py:

class Choice(models.Model):
    user = models.ForeignKey(Users, null=True, on_delete=models.CASCADE)
    question = models.ForeignKey(Questions, null=True,  on_delete=models.CASCADE)
    answer = models.CharField(null=True,max_length=50)

1 个答案:

答案 0 :(得分:0)

我猜您想将用户添加到新创建的对象中?您可以这样做:

if form.is_valid():
    obj = form.save(commit=False)
    obj.user = Users.objects.get(name=username)
    # or maybe you mean obj.user = request.user here?
    obj.save()
    return redirect("detail", question_id)

Django文档中有关于此here的一些信息。