[英]Passing the *class* as function argument
我以前从未做过,而且看起来很笨拙,但是我已经测试过并且可以正常工作。 这是可以的形式吗:
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对象进行查询。 感觉就像是骇客……但是它可以使我的代码变得相当简单。
那不是你在做什么。 您传递的是类,而不是模块。 pdf
显然是Django模型类,因为它具有objects
属性。
不管哪种方法都可以。 类和模块是一流的对象,完全可以将它们传递,在函数中使用它们等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.