我试图查看(而不是编辑)内联表单集中的相关字段。在这种情况下,我想在数量表单集中显示项目成本
models.py
class Item(models.Model):
name = models.CharField(max_length=40)
notes = models.CharField(max_length=200, blank=True)
cost = models.DecimalField(default=0.00, max_digits=8, decimal_places=2, blank=True)
class Quantity(models.Model):
quantity = models.IntegerField(default=0)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
forms.py
class QuantityForm(ModelForm):
def __init__(self, *args, **kwargs):
super(QuantityForm, self).__init__(*args, **kwargs)
class Meta:
model = Quantity
fields = ['id','item', 'quantity']
views.py
QuantityFormSet = inlineformset_factory(Option, Quantity, form=QuantityForm, formset=QuantityInlineFormSet, extra=1)
quantityForm = QuantityFormSet(instance=option)
我想我必须做这样的事情
for form in quantityForm.forms:
form.item_cost = form.fields['item'].selected.cost
但我有点困了。当然,在forms.py中这样做更好吗
解决方法
好的,这是一个大的解决办法,但我在数量表单中创建了一个新字段,名为item\u cost
item_cost = models.DecimalField(default=0.00, max_digits=8, decimal_places=2, blank=True)
然后,我将成本从项目复制到数量
quantities = Quantity.objects.filter(option=option)
for quantity in quantities:
quantity.item_cost = quantity.item.cost
看起来像个黑客
目前没有回答
相关问题 更多 >
编程相关推荐