我之前从未这样做过,而且看起来很糟糕,但我已经过测试,确实有效。这被认为是好的形式:
from audio.models import audio
from document.models import pdf
def count_object_by_sha1(object_type, sha1):
return object_type.objects.filter(sha1=sha1).count()
pdf_count = count_object_by_sha1(pdf, 'somesha1valuehere')
audio_count = count_object_by_sha1(audio, 'somesha1valuehere')
基本上,我将类传递给函数并使用它来对一个或另一个django对象进行查询。感觉就像一个黑客...但它的工作原理使我的代码变得相当简单。
在遇到the mutable object in function call问题之后,我对使用函数参数做奇怪事情感到有些不安。
答案 0 :(得分:2)
这不是你正在做的事情。你传递的是课程,而不是模块。 pdf
显然是一个Django模型类,因为它具有objects
属性。
不管怎么说都没关系。类和模块是一流的对象,传递它们,在函数中使用它们是完全可以的。