Django-将对象的m2m关系保存到另一个对象中

问题描述 投票:0回答:1

我有一个用于调查答复的临时答复模型。当用户在调查的最后一页上将答案保存到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')
django-models django-forms django-views many-to-many manytomanyfield
1个回答
0
投票
我想出了正确的方法:

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()

© www.soinside.com 2019 - 2024. All rights reserved.