我正在寻找一种从一对多关系中获取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
答案 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
,那么它应相当于一对多。