Django - 将对象的 m2m 关系保存到另一个对象
Django - Save an object's m2m relationships to another object
我有一个临时响应模型,用于调查响应。当用户将调查最后一页上的答案保存到 Temporaryresponse 对象时,我还想将该对象中的所有内容保存到新的 Completedresponse 对象中。一切正常,除了我似乎无法将保存到 Temporaryresponse 对象中 "race" 字段的所有 m2m 对象保存到 Completedresponse 对象中的 "race" 字段。
无论我尝试使用添加或设置,我都无法找出正确的方法。
P.S。 - 我真的只想将此 Temporaryresponse 对象中的每个字段保存到新的 Completedresponse 对象中。现在我正在通过手动保存每个字段来执行此操作(请参阅 zip_code...)。有没有办法一次保存所有内容?
views.py
def vr(request, pk):
finalresponse = get_object_or_404(Temporaryresponse, pk=pk)
instance = Temporaryresponse.objects.get(pk=pk)
if request.method == "POST":
form = VotingresponseForm(request.POST, instance=instance)
if form.is_valid():
votingresponse = form.save()
votingresponse.save()
completed_response = Completedresponse(zip_code=votingresponse.zip_code,...)
completed_response.save()
completed_response.race.add(votingresponse.race)
completed_response.save()
return redirect('completed')
谢谢。我是编码新手,需要快速起床 运行,因此我在继续学习的过程中将其用作初步安全提升。
我找到了正确的方法:
if form.is_valid() and instance.ip == ip:
votingresponse = form.save()
votingresponse.save()
completed_response = Completedresponse(zip_code=votingresponse.zip_coded...)
completed_response.save()
completed_response.race.set(votingresponse.race.all())
completed_response.save()
votingresponse.delete()
我有一个临时响应模型,用于调查响应。当用户将调查最后一页上的答案保存到 Temporaryresponse 对象时,我还想将该对象中的所有内容保存到新的 Completedresponse 对象中。一切正常,除了我似乎无法将保存到 Temporaryresponse 对象中 "race" 字段的所有 m2m 对象保存到 Completedresponse 对象中的 "race" 字段。
无论我尝试使用添加或设置,我都无法找出正确的方法。
P.S。 - 我真的只想将此 Temporaryresponse 对象中的每个字段保存到新的 Completedresponse 对象中。现在我正在通过手动保存每个字段来执行此操作(请参阅 zip_code...)。有没有办法一次保存所有内容?
views.py
def vr(request, pk):
finalresponse = get_object_or_404(Temporaryresponse, pk=pk)
instance = Temporaryresponse.objects.get(pk=pk)
if request.method == "POST":
form = VotingresponseForm(request.POST, instance=instance)
if form.is_valid():
votingresponse = form.save()
votingresponse.save()
completed_response = Completedresponse(zip_code=votingresponse.zip_code,...)
completed_response.save()
completed_response.race.add(votingresponse.race)
completed_response.save()
return redirect('completed')
谢谢。我是编码新手,需要快速起床 运行,因此我在继续学习的过程中将其用作初步安全提升。
我找到了正确的方法:
if form.is_valid() and instance.ip == ip:
votingresponse = form.save()
votingresponse.save()
completed_response = Completedresponse(zip_code=votingresponse.zip_coded...)
completed_response.save()
completed_response.race.set(votingresponse.race.all())
completed_response.save()
votingresponse.delete()