小编Abe*_*Paz的帖子

使用新的"虚拟"列保存基于类的视图formset项

我在表单中有一个表格,由formset生成.

在这种情况下,我的问题是在修改其中一个项目之后保存所有项目,添加一个新的"虚拟"列作为其他两个的总和(仅在显示表时生成,未保存).我尝试了不同的方法,但没有人工作.

问题:

  • save根本不起作用.当它只是一种形式时它起作用,但不适用于形式
  • 我想,以产生列amount作为Sumbox_onebox_two没有成功.我也试过这种方式生成表单,但这不起作用:
formset = modelformset_factory(
    Item, form=ItemForm)(queryset=Item.objects.order_by(
        'code__name').annotate(amount=Sum('box_one') + Sum('box_two')))
Run Code Online (Sandbox Code Playgroud)

此问题与前一个问题有关,但这个新问题更简单: 使用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)

python django save formset

10
推荐指数
1
解决办法
240
查看次数

标签 统计

django ×1

formset ×1

python ×1

save ×1