Django 为StackedLine保存表单集不工作

Django 为StackedLine保存表单集不工作,django,django-modeladmin,Django,Django Modeladmin,我正在尝试生成一个二维码来分配给图像字段。我在另一个模型上使用ModelAdmin中的save_model函数做到了这一点。现在,我需要以内联的方式来做。显然,save_模型在这里不起作用,我被告知save_formset是一种替代方法,但我无法让它起作用。我已经将我的代码与我看到的save_formset的其他实例进行了比较,没有看到任何语法错误,但是django不会给我错误报告,所以我没有其他事情要做 class InstrumentAdmin(admin.ModelAdmin):

我正在尝试生成一个二维码来分配给图像字段。我在另一个模型上使用ModelAdmin中的save_model函数做到了这一点。现在,我需要以内联的方式来做。显然,save_模型在这里不起作用,我被告知save_formset是一种替代方法,但我无法让它起作用。我已经将我的代码与我看到的save_formset的其他实例进行了比较,没有看到任何语法错误,但是django不会给我错误报告,所以我没有其他事情要做

class InstrumentAdmin(admin.ModelAdmin):
    inlines = [
        AssetInline,
    ]
    def save_formset(self, request, form, formset, change):
        instances = formset.save(commit=False)
        for f in instances:
            # save the object first so we get an id number etc.
            f.save()
            # determine the URL
            url='{}{}'.format(HOMEURL,f.get_absolute_url())
            # build a qr code
            qr = qrcode.QRCode(box_size=3)
            qr.add_data( 'FloWave TT {} {}'.format(f,url))
            qr.make(fit=True)
            img=qr.make_image()
            # save to memory
            img_io= StringIO.StringIO()
            img.save(img_io,'PNG')
            img_file=InMemoryUploadedFile(img_io, None, 'assetqr{}.png'.format(f.id), 'image/png', img_io.len, None)
            # update the object record with the qrcode
            f.qrcode=img_file
            f.save()
        formset.save_m2m()

我已经解决了这个问题。我没有直接通过save_formset编辑资产模型,而是在父级上使用save_模型,并使用它编辑子级。因此:

def save_model(self, request, obj, form, change):
    # save the object first so we get an id number etc.
    obj.save()
    obj.asset.save()
    # determine the URL
    url='{}{}'.format(HOMEURL,obj.get_absolute_url())
    # build a qr code
    qr = qrcode.QRCode(box_size=3)
    qr.add_data( 'FloWave TT {} {}'.format(obj,url))
    qr.make(fit=True)
    img=qr.make_image()
    # save to memory
    img_io= StringIO.StringIO()
    img.save(img_io,'PNG')
    img_file=InMemoryUploadedFile(img_io, None, 'qr{}.png'.format(obj.id), 'image/png', img_io.len, None)
    # update the object record with the qrcode
    obj.asset.qrcode=img_file
    obj.asset.save()
    obj.save()