2017-04-21 76 views
0

我有一个django应用程序,对于特定的表单,数据来自不同的模型,所有模型中都有一个公共字段(id)。而不是对所有表单使用多个表单和相同的ID ,我想用一个表单从多个模型中获取数据。如何做到这一点?在单个django表单中使用多个模型

回答

1
  1. 指定作为Django文档提供您的形式:https://docs.djangoproject.com/en/1.10/topics/forms/#building-a-form-in-django
  2. 例如指定视图

view.py

def get_name(request): 
    id = request.kwargs['id'] # Get the id from url or however you want to get the id 
    item = Item.objects.get(name_id=id) 
    item2 = Item2.objects.get(name_id=id) 

    # if this is a POST request we need to process the form data 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = NameForm(request.POST) 

     # check whether it's valid: 
     if form.is_valid(): 
      # process the data in form.cleaned_data as required 
      # ... e.g. 
      item.name = form.cleaned_data['name'] 
      item2.name = form.cleaned_data['name2'] 
      item.save() 
      item2.save() 
      # redirect to a new URL: 
      return HttpResponseRedirect('/thanks/') 

     # if a GET (or any other method) we'll create a blank form 
    else: 
     # This is for updating the "name" objects    
     form = NameForm(initial={'name': item.name, 'name2': item2.name}) 
     # for creating: (but I guess you don't need creating) 
     # form = NameForm() 

    return render(request, 'name.html', {'form': form}) 
  • 处理窗体在模板象通常那样。
  • 相关问题