如何将ContentType
查询集过滤为仅包含具有特定方法的模型?
class myModel(models.Model):
...
def mySpecificMethod:
...
我可以在???
中放置什么来获取mySpecificMethod
存在的所有模型?
ContentType.objects.filter(???)
答案 0 :(得分:1)
我认为通过循环过滤它更合适。
如果您打算获得QuerySet
类型的结果,您只需循环它们,然后获取ID列表,然后使用pk__in
参数对其进行过滤。
ContentType.objecst.filter(
pk__in=[
ct.pk for ct ContentType.objects.all()
if content_type_has_method(ct, 'method_name')
]
)
所以,你已经减少了这个问题来写一个方法:
def content_type_has_method(ct, method_name):
...
我认为这对你来说更简单,祝你好运!