可能很容易
我试图禁用(即该字段存在但是显示为灰色)" sub_total'所有formset行上的字段,并使用javascript更新字段,无论输入到' price_estimate'和'数量'字段。
我有以下型号:
class Requisition(models.Model):
create_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
description = models.CharField(max_length=128, null=True, blank=True,)
total = models.DecimalField(decimal_places=2, max_digits=20, null=True)
class RequisitionLine(models.Model):
requisition = models.ForeignKey(Requisition)
product = models.CharField(max_length=50, blank=False)
quantity = models.PositiveIntegerField()
price_estimate = models.DecimalField(decimal_places=2, max_digits=20)
sub_total = models.DecimalField(decimal_places=2, max_digits=20, null=True)
@property
def get_sub_total(self):
return self.quantity * self.price_estimate
在我看来,我有
Formset = inlineformset_factory(models.Requisition,
models.RequisitionLine,
form = forms.RequsitionForm,
formset= forms.RequisitionLineForm,
fields=('product', 'price_estimate', 'quantity', 'sub_total'),
extra=2)
表格
class RequsitionForm(forms.ModelForm):
class Meta:
model = models.Requisition
fields = ['description']
class RequisitionLineForm(forms.BaseInlineFormSet):
sub_total = forms.DecimalField(disabled=True, required=False)
class Meta:
model = models.RequisitionLine
fields = ['product', 'quantity', 'price_estimate', 'sub_total']
除了上面的代码之外 - 我试图修改 init 上的sub_total字段,但是,无论我尝试什么,似乎都会被忽略。
任何帮助表示赞赏
答案 0 :(得分:0)
我怀疑 - 非常基本的错误。视图应如下所示(即不设置formset标志。
import tkinter
def createlabel(*args, **kwargs):
if 'text' in kwargs and isinstance(kwargs['text'], list):
kwargs['text'] = ''.join(map(str, kwargs['text']))
return tkinter.Label(*args, **kwargs)
window = tkinter.Tk()
A = [1," ", 3]
label = createlabel(window, text = A[0:])
label.pack()
window.mainloop()
除此之外 - 应修改表单以使用ModelForm(而不是BaseInlineFormSet)
Formset = inlineformset_factory(models.Requisition,
models.RequisitionLine,
form = forms.RequisitionLineForm,
fields=('product', 'price_estimate', 'quantity', 'sub_total'),
extra=2)