从一对多字段获取ID

时间:2018-10-01 15:18:32

标签: django django-models

我正在尝试获取相关模型的ID。我已经尝试了几种方法,但无法弄清楚。下面是我正在使用的代码。

def assign_load(request):
form = DispatchForm(request.POST or None)
loads = Load.objects.all().filter(active=True, dispatched=False, picked_up=False, delivered=False,
                                  billed=False, paid=False)
context_dict = {'dispatch' : form, 'load' : loads}
if form.is_valid():
    save_it = form.save()
    save_it.save()
    new_dispatch = Dispatch.objects.all().filter(id=save_it.id)
    print(new_dispatch.model.load_number.pk)
    return HttpResponseRedirect('/dispatch/dispatch/')

return render(request, 'dispatch/dispatch_form.html', context_dict)

new_dispatch是新创建的记录,该记录与称为Loads的模型具有一对多关系。当我尝试仅打印new_dispatch.model.load_number时,我需要获取load_number PK,然后返回以下内容。

<django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor object at 0x0000029016E34710>

但是我需要的是该记录的ID,以便我可以更新一些字段。

非常感谢您的帮助,我是Django世界的新手,正努力弄清这些东西。

1 个答案:

答案 0 :(得分:0)

使用Dispatch.objects.get(id=save_it.id)代替Dispatch.objects.all().filter(id=save_it.id)