1
產品有很多項目。我可以在桌子上整齊地顯示特定產品的物品。但是,當我嘗試保存時,在回發時,只有表格中的最後一個元素保存爲該產品的所有項目。這可能是因爲我只返回從我的HTML返回的最後一個元素。任何人都可以告訴我任何優雅的方式來做到這一點?這是我的代碼。無法保存從Django模板項目列表
models.py
class Item(models.Model):
Product = models.ForeignKey("Product", related_name = "Attributes")
Name = models.CharField(max_length=1000, blank=True, null=True)
Type = models.CharField(max_length=1000, blank=True, null=True)
forms.py
class ItemForm(ModelForm):
class Meta:
model = Item
fields = ['Name', 'Tag']
views.py
def getItems(request, product_id):
items = get_list_or_404(Item, Product = product_id)
itemslist = []
if request.method == 'GET':
for item in items:
itemform = ItemForm(instance=item)
itemlist.append(itemform)
else:
for item in items:
itemform = ItemForm(request.POST, instance=item)
itemlist.append(itemform)
for tempform in itemlist:
if tempform.is_valid():
tempform.save()
return render(request, 'knowledgebase.html', {'product_id': product_id, 'itemslist': itemslist})
HTML文件:
<tbody>
{% for itemform in itemslist%}
<tr>
<td class="td"> {{ itemform.Name }} </td>
<td> {{ itemform.Tag }} </td>
</tr>
{% endfor %}
</tbody>
你應該使用一個formset這種事情。 –
要添加Mr. Roseman的評論,請參閱https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#model-formsets瞭解如何設置模型表單集。視圖代碼將幾乎相同。 – theWanderer4865