【发布时间】:2017-04-21 07:00:18
【问题描述】:
我有一个 django 应用程序,对于一个特定的表单,数据来自不同的模型,在所有模型中都有一个公共字段(id)。我不想使用多个表单和所有表单的相同 id,我想使用一个表单从多个模型中获取数据。如何做到这一点?
【问题讨论】:
标签: django django-models django-forms
我有一个 django 应用程序,对于一个特定的表单,数据来自不同的模型,在所有模型中都有一个公共字段(id)。我不想使用多个表单和所有表单的相同 id,我想使用一个表单从多个模型中获取数据。如何做到这一点?
【问题讨论】:
标签: django django-models django-forms
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})
【讨论】: