微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以确定在保存更新期间模型的内联是否已更改?

如何解决是否可以确定在保存更新期间模型的内联是否已更改?

class MyModel(models.Model):
    ...
    version = models.IntegerField(
        default=portal_settings.DEFAULT_MY_MODEL_VERSION
    )
    ...


class MyModelForm(forms.ModelForm):
    ...
    ...


class MyModelQuestion(models.Model):
    my_model = models.ForeignKey(MyModel,on_delete=models.CASCADE)
    my_field = models.TextField()
    ...


class MyModelQuestionForm(forms.ModelForm):
    class Meta:
        model = MyModelQuestion
        fields = ['my_field']


class MyModelQuestionInline(admin.TabularInline):
    model = MyModelQuestion
    fields = ['my_field']
    can_delete = True
    can_edit = True
    extra = 0


class MyModelQuestionAdmin(admin.ModelAdmin):
    form = MyModelQuestionForm


class MyModelAdmin(admin.ModelAdmin):
    form = MyModelForm
    inlines = (MyModelQuestionInline,)


def bump_my_model_version_if_updated(sender,instance,created,**kwargs):
    if not created:
        if kwargs.get("update_fields") or <one or more of the inline objects is being updated>: <--- can't figure out how to do the second condition here
            instance.version += 1
            instance.save()


signals.post_save.connect(receiver=bump_my_model_version_if_updated,sender=MyModel)

我的问题是,目前在 bump_my_model_version_if_updated() 中,我只能判断 MyModel 实例的直接字段是否已更新,但我无法判断是否有任何内联 MyModelQuestion对象已更新。信号的 instance 参数当然是 MyModel 实例。

是否有可能检索 MyModelAdmin(它应该允许我检索内联),或者直接从 MyModel 类中检索内联?

如果需要其他任何帮助,可以按要求提供更多代码。任何建议表示赞赏!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。