我在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声明为静态方法。

10-08 08:36