Django模板中的一对多关系

时间:2014-01-26 21:07:40

标签: python django django-tables2

我正在寻找一种从一对多关系中获取html表单的方法,如order-lineorder,invoice-lineinvoice等。

让我举个例子:

# models.py
class Order(models.Model):
    date = models.DateTimeField()
    number = models.IntegerField(default=0)

class LineOrder(models.Model):
    description = models.TextField()
    price = models.FloatField()
    order = models.ForeignKey(Order)

# views.py
def order_form(request):
    form = OrderForm()
    table_lineorder = LineOrderTable([])
    RequestConfig(request).configure(table)
    return render(request, "order_form.html", {"form": form, "table": table_lineorder})

然后,我想获得具有“通用属性”(日期,数字)的订单模板,以及行顺序的表列表(最初为空)。添加一些动作,如添加,编辑和删除必须是可能的。

我认为像django-tables2这样的解决方案是可行的,但我认为我不能在行中添加行。

感谢您的建议。

[编辑]

我找到了解决方案。它是django-dynamic-formset

1 个答案:

答案 0 :(得分:0)

我对你的问题不是很清楚,但我想这可能是你想要的:

class Order(models.Model):
    date = models.DateTimeField()
    number = models.IntegerField(default=0)
    items = model.ManyToManyField(Item)

class Item(models.Model):
    description = models.TextField()
    price = models.FloatField()

如果您没有将一个Item分配给多个Order,那么它应相当于一对多。