有什么办法可以通过表格获取模型ID?

时间:2018-12-21 22:40:01

标签: python django view

我正在尝试通过Django表单上载某些图像时,在视图中可以获取对象并重定向到图像的url。

我试图将一个id字段包含到ModelForm中,但是它不起作用。这是处理POST的视图。

def model_form_upload(request):

    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)

        if form.is_valid():
            form.save()
            return redirect('index') 
            # here i want to redirect something like /media/image1.jgp
    else:
        form = DocumentForm()
    return render(request, 'src/model_form_upload.html', {
        'form': form
    })

1 个答案:

答案 0 :(得分:0)

,实际上,如果您在form.save()上调用ModelForm,则会返回创建的实例 / modified,这样您就可以获取实例并从中提取属性,或者进行一些额外的处理。例如:

def model_form_upload(request):
    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save()
            # extract items from instance
            return # ...
    else:
        form = DocumentForm()
    return render(request, 'src/model_form_upload.html', {
        'form': form
    })

因此,您可以使用id的形式获取实例的instance.pk

或者,您也可以使用form.instance来访问Form创建/修改的实例。