首页 > 解决方案 > DetailView 中的多个独立表单

问题描述

我有这些简化的模型。一个订单可以有多个订单项。OrderItems 有一个状态(“A”、“B”或“C”)。

class OrderItem(models.Model):

    STATUS_CHOICES = (
        ("A", "A"),
        ("B", "B"),
        ("C", "C"),
    )
    name = CharField(max_length=100)
    status = models.CharField(choices=STATUS_CHOICES, blank=False, default="A", max_length=1)   

    def __str__(self):
        return self.name


class Order(models.Model):
    items = models.ManyToManyField(OrderItem)

    def __str__(self):
        return self.pk

目前我使用一个DetailView,它显示一个订单并循环通过OrderItems。每个 OrderItem 都有一个指向 UpdateView 的链接,用于更新状态:

视图.py

class DetailOrder(DetailView):
    model = Order

模板

{% for orderitem in object.items.all %}
    {{orderitem}}
    <a href={% url 'some-updateview' orderitem.pk %}>Update Status</a>
{% endfor %}

现在我的问题是:我将如何处理每个订单项显示一个独立的表单以直接在 DetailView 中更新状态,而不是跟随到 UpdateView 的链接。这甚至可能吗?像这样的东西,只是为了展示这个想法:

{% for orderitem in object.items.all %}
    {{orderitem}}
    {{form}}
{% endfor %}

标签: djangodjango-formsdjango-class-based-views

解决方案


推荐阅读