一张图片胜过千言万语。这是我正在努力实现的目标:
这很简单,只需在模板中手动创建一个表,就像这样:
<form>
<table class="table">
<thead><tr><th>{% trans 'Name' %}</th><th>{% trans 'Available Quantity' %}</th></tr></thead>
<tbody>
{% for p in products %}
<tr><td>{{p.name}}</td><td>{{p.available}}</td><td><input name="{{p.id}}" type="number" /></td></tr>
{% endfor %}
</tbody>
</table>
<form>
然而,这样做会使处理提交的表单数据以及进行错误验证变得麻烦。
我更喜欢用django形式(formset似乎更合适)。我已经尝试了this approach,但这并不能让我更容易实现。
这是我(相关)模型的缩小版本:
class Product(models.Model):
name = models.CharField("Name", max_length=50)
class OrderItem(models.Model):
product = models.ForeignKey('Product', verbose_name=_("Product"))
quantity = models.FloatField("Quantity")
在我不考虑的django中有优雅的方式吗?