我在表单中有一个表格,由formset生成.
在这种情况下,我的问题是在修改其中一个项目之后保存所有项目,添加一个新的"虚拟"列作为其他两个的总和(仅在显示表时生成,未保存).我尝试了不同的方法,但没有人工作.
问题:
save根本不起作用.当它只是一种形式时它起作用,但不适用于形式amount作为Sum的box_one并box_two没有成功.我也试过这种方式生成表单,但这不起作用:Run Code Online (Sandbox Code Playgroud)formset = modelformset_factory( Item, form=ItemForm)(queryset=Item.objects.order_by( 'code__name').annotate(amount=Sum('box_one') + Sum('box_two')))
此问题与前一个问题有关,但这个新问题更简单: 使用Django从数据库预填充HTML表单表
StackOverflow以前的相关问题很老,对我不起作用.
我正在使用Django 2.0.2
任何帮助,将不胜感激.提前致谢.
当前代码:
models.py
class Code(models.Model):
name = models.CharField(max_length=6)
description = models.CharField(max_length=100)
def __str__(self):
return self.name
class Item(models.Model):
code = models.ForeignKey(Code, on_delete=models.DO_NOTHING)
box_one = models.IntegerField(default=0)
box_two = models.IntegerField(default=0)
class Meta:
ordering = ["code"]
Run Code Online (Sandbox Code Playgroud)
views.py
class ItemForm(ModelForm):
description = CharField()
class Meta:
model = Item
fields = ['code', 'box_one', 'box_two']
def save(self, commit=True): …Run Code Online (Sandbox Code Playgroud)