我有一个简单的 InventoryItems 和 Categories 设置。我有一个 InventoryItems 的表单集,但想根据 FK 类别拆分项目,我不需要也不想要一个内联表单集。
我所拥有的简化版
class Category(models.Model):
name = models.CharField(max_length=255)
inventory = models.BooleanField(default=False)
class Inventory(models.Model):
name = models.CharField(max_length=255)
quantity = models.IntegerField()
category = models.ForeignKey(Category)
def viewOfForm(request):
categories = Category.objects.filter(inventory=True)
InventoryFormset = modelformset_factory(Inventory, can_delete=True, extra=1)
formset = InventoryFormset(request.POST or None, queryset=Inventory.objects.filter(category__inventory=True))
return render_to_response('template.html', locals())
我想在模板中做什么
{% for category in categories %}
<fieldset class="collapse">
<h2>{{ category.name }}</h2>
{% for form in formset %}
{% if form.category == category %}
{{ form }}
{% endif %}
{% endfor %}
</fieldset>
{% endfor %}
最佳答案
你只需要一个小小的改变就可以让它工作;使用 form.instance.category
在您的 if
模板标签:
{% if form.instance.category == category %}
关于django - 根据外键将 django formset 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9345308/