加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django模型表单和对象数据库id

发布时间:2020-12-20 11:15:15 所属栏目:Python 来源:网络整理
导读:我有一个复杂的 django对象,它具有其他类类型的属性.这是这样的: class Order: contractor - type Person some other fields.... 在我的表单中,我希望能够从下拉列表中选择现有的Person对象,或者添加一个带有表单的新对象.我已经设法创建表单和适当的工作流
我有一个复杂的 django对象,它具有其他类类型的属性.这是这样的:

class Order:
   contractor - type Person
   some other fields....

在我的表单中,我希望能够从下拉列表中选择现有的Person对象,或者添加一个带有表单的新对象.我已经设法创建表单和适当的工作流程,但问题是保存Order本身,我根本无法获取已保存的Person实例的id.我这样做:

def make_order(request):
  if request.method == 'POST':
    parameters = copy.copy(request.POST)
    contractor_form = ContractorForm(parameters)
    if contractor_form.is_valid():
      contractor_form.save()
      parameters['contractor'] = ???
    form = OrderForm(parameters)
    if form.is_valid():
      form.save() 
      return HttpResponseRedirect('/orders/')
  else:
    form = OrderForm()
    contractor_form = ContractorForm()

  return render_to_response('orders/make_order.html',{'order_form' : form,'contractor_form' : contractor_form})

因此,如果POST请求到达此方法,我首先检查ContractorForm是否已填充 – 我假设如果表单有效,则表示要使用它.如果是,则保存,并希望将保存对象的数据库ID分配给适当的字段,以便OrderForm找到它.

我所有的表单都是ModelForms.

问题是:

>有没有更好的方法来做到这一点? (从下拉菜单中选择或添加到位) – 更好或更多pythonic

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读