Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存到Django中的模型后返回主键_Python_Django_Return - Fatal编程技术网

Python 保存到Django中的模型后返回主键

Python 保存到Django中的模型后返回主键,python,django,return,Python,Django,Return,我已经看过文档和一些类似的堆栈溢出帖子,但是在保存表单后,我仍然无法返回新模型的ID/PK。它一直告诉我“ProposalForm”对象没有属性“id” 保存后如何立即返回ID? 以下是观点: def proposal_create_view2(request): if request.method == 'POST': form = ProposalForm(data=request.POST) if form.is_valid(

我已经看过文档和一些类似的堆栈溢出帖子,但是在保存表单后,我仍然无法返回新模型的ID/PK。它一直告诉我“ProposalForm”对象没有属性“id” 保存后如何立即返回ID?

以下是观点:

def proposal_create_view2(request):
        if request.method == 'POST':
            form = ProposalForm(data=request.POST)
            if form.is_valid():
                form.save()
                response = {}
                response['proposalID'] = form.id
                return response

ModelForm.save()的返回值是新模型。取而代之的是它的主键。

my\u saved\u model=my\u model\u form.save()

打印我的\u保存的\u model.pk

编辑:

def proposal_create_view2(request):
    if request.method == 'POST':
        form = ProposalForm(data=request.POST)
        if form.is_valid():
            mysaved_model = form.save()
            response = {}
            response['proposalID'] = mysaved_model.id #or .pk
            return render(request , 'my_template_file.html' , response) 

            #return response statement is NOT valid as you need to return an HttpResponse not a dict

回顾

我对Django很陌生,所以我不完全理解。你能详细说明一下吗?具体来说,我将如何从新模型中获取它?与您当前尝试从表单中获取它的方式相同。除了方法返回的模型,我知道我只是个白痴。但是我想我不知道我的代码对于我的保存的模型是什么。我正试图用
response['proposalID']=proposal.objects.get(user=request.user,create_date=datetime.datetime.now())返回响应来检索新的proposal对象,但这也不起作用。在我的例子中,我实际使用的代码是什么?@MichaelRomrell我更新了答案,希望现在更清楚。非常感谢!我只是在学习Django,所以我感谢你的耐心。最后我进一步修改了您的return语句,使之成为
returnhttpresponse(mysaved_model.id)
,因为我不想再次加载模板。你太棒了,谢谢!