有必要实现一种访问数据库的方法以检索特定实例 - 具有特定编号的记录,例如,使用 Django 框架。目前为此目的使用了以下函数:
def get_instance(pk=None):
''' возвращает экземпляр модели из БД по ключю pk'''
instance = Entry.objects.filter(id=pk) // Entry - тип модели в БД, он же класс объектов
return instance[0] if instance.exists() else None
上面的函数使用指定的类名。
在这种情况下,如何引用数据库中的另一个模型,将其类型动态替换为该方法的参数?例如,使用 classType 参数,classType 的语法是什么?
def get_instance(classType, pk=None):
instance = classType.objects.filter(id=pk) // classType- тип модели в БД, он же класс объектов
return instance[0] if instance.exists() else None
您可以使用
first.None如果没有所需的对象,它将返回你可以按名字上课
getattr类类型替换的简单版本有效:
执行结果(Python 3.6):