save_model ManyToManyField

版权声明:本文为博主原创文章,未经博主允许不得转载。若有疑问,请邮件:[email protected] https://blog.csdn.net/cloudmq/article/details/83623141

http://www.codeye.top
Django Admin.py 中使用 save_modle,在执行获取obj里的数据时发现obj没有实时更新

数据模型关系:

app = models.ManyToManyField('lrApp', verbose_name="申请接入平台", blank=True)

admin.ModelAdmin 中的一些代码:

classBatchAuthAdmin(admin.ModelAdmin):
    list_display = ('batchauth_list','projectId','authExe','maxConnect','OS','ARCH','spanTime','stopTime')
    filter_horizontal = ('app',)
    readonly_fields = ('createTime','stopTime','clientToken')
    exclude = ('status','httpPath','tcpPort','httpPort','reserver')
    def save_model(self, request, obj, form, change):
        obj.save()
        modles = obj.app.all()  # 这里获取的数据为空,首次创建为空,再次保存时数据为上次的结果
        s = form.cleaned_data['app'] # 直接读取form里的数据,可以获取实时数据
        names = map(lambda o: o.key, s.all())
        modules = ('|').join(names)

解决方法:直接从form里读取数据,获取多多映射的实时数据

猜你喜欢

转载自blog.csdn.net/cloudmq/article/details/83623141