我在Django应用程序views.py中有一个这样的类
from dms.models import Folder, File, FileTag
class GetFamily:
def getFathers(folder_id):
if folder_id == None:
rev_fathers=None
else:
fathers=[]
rev_fathers=[]
father=Folder.objects.get(id=folder_id)
fathers.append(father)
while father.parent_folder_id != None:
father=Folder.objects.get(id=father.parent_folder_id)
fathers.append(father)
rev_fathers=reversed(fathers)
return rev_fathers
def getChildrenFolders(folder_id):
folders=Folder.objects.filter(parent_folder_id=folder_id)
return folders
def getChildrenFiles(folder_id):
files=File.objects.filter(folder_id=folder_id)
return files
当我用id调用getFathers(folder_id)方法时,它给出了
getFathers()恰好接受1个参数(给定2个)
请帮我
最佳答案
getFathers
是类GetFamily
的方法,因此它需要实例的第一个参数。 python中的约定是对此名称使用名称self
:
def getFathers(self, folder_id):
请注意,函数本身不访问任何类的成员。这通常是一个很好的指示,表明它不必是类的方法,或者可以使用
@staticmethod
声明为静态方法。