我需要实现的最好方法是用示例来描述。想象一下,我有多个模型(比如说,模型Task
和模型Animals
)具有名为foo
的字段,我的目标是为所有这些模型执行相同的一组MySQL事务。例如,我想将给定实例的所有foos
以及随后的实例(具有更大的ID)递增1。喜欢的东西:为所有类型的Django模型编写通用函数
def example_view(instance):
instance.foo = instance.foo + 1
instance.save()
id = instance.id
INSTANCE_MODEL.objects.filter(id__gt = instance.id).update(foo = foo + 1)
的问题是,是否有可能在Django写在一定意义上通用的功能,我可以使用example_view
与Animals
,Tasks
等,只要所有的人都在认为上述领域?如果是的话,INSTANCE_MODEL.objects....
的有效语法是什么?
这是原则叫鸭-typing;只要一个对象响应一个接口,它就不管它是什么类。那么,你的问题到底是什么? –
'INSTANCE_MODEL'的正确语法是'type(instance)'或者'instance._meta.model',但我只是简单地使用'type()'。 –