Python 保存到Django中的模型后返回主键
我已经看过文档和一些类似的堆栈溢出帖子,但是在保存表单后,我仍然无法返回新模型的ID/PK。它一直告诉我“ProposalForm”对象没有属性“id” 保存后如何立即返回ID? 以下是观点: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(
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)
,因为我不想再次加载模板。你太棒了,谢谢!