首页 > 解决方案 > 将项目附加到 wagtail 中的流场

问题描述

我有一个正在工作的流场,并且有数据,我为此编写的代码看起来像:

class NewYearBlock(blocks.StructBlock):
  year = blocks.IntegerBlock(verbose_name="Year (the year this data is rolling into)")
  holidayRollover = blocks.FloatBlock(verbose_name="How many hours are rolling over")
  overtimeRollover = blocks.FloatBlock(verbose_name="How many hours are rolling over")
  class Meta:
      icon = 'user'

newyearStream = StreamField([
    ('newyear', NewYearBlock()),
], blank=True)

我想做的是通过一些代码将一个项目附加到这个流场,我知道如何用下面的项目替换这个项目(有效)

employeeModel.newyearStream = newyearStream
employeeModel.save()

但这取代了已经存在的东西。

然后我想我可以遍历现有的流,然后创建一个新对象来保存,但是当我尝试这样做时,我收到TypeError: cannot unpack non-iterable StreamChild object了,所以我查看了类型,发现它是<class 'wagtail.core.blocks.stream_block.StreamValue'>

任何人都可以帮助我指出正确的方向,以循环遍历流并获取我的结果,或者以更好的方式附加到我的 streamField。

谢谢你的时间帮助,丹

标签: djangowagtailwagtail-streamfield

解决方案


推荐阅读