django - 根据外键将 django formset 分组

标签 django django-forms

我有一个简单的 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/

相关文章:

python - 有没有办法将变量传递给装饰器?

jquery - 如何保护ajax在没有登录的情况下被使用?

javascript - 在 Django 中按下清除按钮时清除输入字段

python - 从表单中获取数据并显示在模板中

python - Django: ForeignKey Filter 查询Form中选中的数据

django - 选择一个有效的选择。 0不是可用的选择之一

Django 缓存 : Use Memcached and fallback to FileSystem

django - CBV中的form_valid()不调用is_valid()方法吗?

表单中的 Django 媒体 Assets ,如何延迟/异步 JS Assets

python - Bootstrap 弹出窗口中的 Django 登录表单