2013-04-07 37 views
0

我有几个模型 - NodeLinkMap。地图有link_id,node_a_idnode_b_id字段。我正在显示Link的一个表单,以及Node的两个表单。如何将输入的信息保存在将存储关系的Map模型中?在Django中使用多个表单

回答

0

我假设你在使用ModelForms,并且地图需要保存链接和节点。

所以首先你需要保存这些模型,然后保存地图模型。我还假设,即link_id,node_a_id和node_b_id被定义为models.ForeignKey(链接)...

所以它看起来财产以后这样的:

# somehwere on your views.py ... 

def my_display_forms_view(request): 
    if request.method == 'POST': 
     na = Node() 
     nb = Node() 
     link = Link() 
     na_form = NodeForm(request.POST, instance=na) 
     nb_form = NodeForm(request.POST, instance=nb) 
     link_form = LinkForm(request.POST, instance=link) 

     if na_form.is_valid() and nb_form.is_valid() and link_form.is_valid(): 
      na = na_form.save() 
      nb = nb_form.save() 
      link = link_form.save() 
      map = Map(link_id=link, node_a_id=na, node_b_id=nb) 
      # maybe here fill more fields for map 
      map.save() 
      # eventually do some more stuff 
    else: 
     ... generate new unbound forms here 
    return render_to_response(...) 
相关问题