我的问题是我无法直接在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)
答案 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的一些信息。