1
說我想要一個輸入表單,其中一個輸入是基於另一個表的多選。所以,我有以下代碼:Django多種選擇外鍵返回對象
# forms.py
class AddItemForm(ModelForm):
class Meta:
model = mpItem
exclude = ('date_created',
'created_by_user',
)
及以下觀點:
def add_item_view(request, template_name='data/add_item.html', current_app=None):
if request.method == 'POST':
form = AddItemForm(request.POST, request.FILES)
if form.is_valid():
item = form.save(False)
item.created_by_user = request.user
item.save()
return HttpResponseRedirect('../item/'+str(item.id))
else:
form = AddItemForm()
form.fields["mptype"].queryset = mpType.objects.all()
return render_to_response(template_name,context_instance=RequestContext(request,{'form':form})
)
和模板:
<form enctype="multipart/form-data" method="post" action=".">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.title.errors }}
<label for="id_title" class="second">Title</label>
{{ form.title }}
</div>
<div class="fieldWrapper">
{{ form.mptype.errors }}
<label for="id_mptype" class="second">Type</label>
{{ form.mptype }}
<p>
<span> Your item does not fit in any collection? Create a <a href="{% url addcollection %}">new one</a>.</span>
</p>
</div>
<div class="fieldWrapper">
{{ form.image.errors }}
<label for="id_image" class="second">Image</label>
{{ form.image }}
</div>
<div class="fieldWrapper">
{{ form.description.errors }}
<label for="id_description" class="second">Description</label>
{{ form.description }}
</div>
然而,當模板被渲染我有對象的列表,其我不知道如何解壓縮(對象mpType1,對象mpType2)。理想情況下,我希望選擇字段是這些對象的「標題」字段,並將它們的值作爲它們的ID。我在這裏錯過了什麼?
沒錯,就是這樣。謝謝。 –