我在django app 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个)
请帮帮我
答案 0 :(得分:5)
getFathers
是类GetFamily
的方法,因此它需要实例的第一个参数。 python中的约定是使用名称self
作为此参数:
def getFathers(self, folder_id):
请注意,该功能本身不会访问任何类'成员。这通常是一个很好的指标,它不需要是类的方法,或者它将使用@staticmethod
声明为静态方法。
答案 1 :(得分:1)
在参数中包含self
:
def getFathers(self, folder_id):
或者,如果它不需要任何实例变量,请将其标记为staticmethod
:
@staticmethod
def getFathers(folder_id):