我使用Django和Django Rest框架以及序列化程序扩展Mixin来扩展字段。我有一些计算字段,我只想调用有时尽量减少点击我的数据库。但是,我需要能够在两个模板(即通过模型)和序列化程序(即使用DRF的serializers.MethodField
+序列化程序扩展Mixin expand特性)中调用这些计算。你知道吗
从目前的情况来看,我唯一能弄清楚如何做到这一点的方法是将逻辑同时包含在models.py
和serializers.py
中,因为我不能使用serializers.MethodField
来调用我在models.py.
中创建的方法,它不是很枯燥,而且是一个巨大的潜在缺陷。你知道吗
当我试图通过serializers.MethodField
调用方法时,它只返回method对象,而不运行方法本身(即"<property object at 0x7f18d78de9a8>"
)。你知道吗
有没有办法强制DRF只在触发时运行models.py
中的方法?如果我将它作为serializers.ReadOnlyField
包含,它将在每次调用序列化程序时触发,我不希望这样。但是,序列化程序扩展Mixin不支持serializers.ReadOnlyField.
我想我可以专门为这个实例创建一个序列化程序,但这似乎过于复杂了。你知道吗
有什么想法吗?提前谢谢!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐