Python Django Make迁移问题

Python Django Make迁移问题,python,django,makemigrations,Python,Django,Makemigrations,我被难住了。我有一个自定义模型字段类,它查找两个参数:app_name和file_dir 在我的模型定义中,我有: files = MultiFileUploadAndViewer(app_name = getAppName(), file_dir='RequestedFiles', blank=True) getAppName()是: 我删除了migrations文件夹中的所有内容,除了init.py 在运行makemigrations时,它抛出一个键错误,抱怨“app_name”不在kwa

我被难住了。我有一个自定义模型字段类,它查找两个参数:app_name和file_dir

在我的模型定义中,我有:

files = MultiFileUploadAndViewer(app_name = getAppName(), file_dir='RequestedFiles', blank=True)
getAppName()是:

我删除了migrations文件夹中的所有内容,除了init.py

在运行makemigrations时,它抛出一个键错误,抱怨“app_name”不在kwargs中

但是,请注意在字段init方法中调用print()。成功打印应用程序名称的。关键错误出现在后面。init函数被调用了两次还是什么?因此在“app_name”之后抛出错误
从kwargs上跳下来?我如何解决这个问题?如果我在pop()方法中为app_name提供一个默认值,这会起作用,但如果app_name(或file_dir)不在kwargs中,我希望它会出错。

init方法会被super class models.FilePathField再次调用,此处:

super(MultiFileUploadAndViewer, self).__init__(*args, **kwargs)
您正在删除这里的kwargs app_名称

self.app_name = kwargs.pop('app_name')

超级类models.FilePathField在此再次调用init方法:

super(MultiFileUploadAndViewer, self).__init__(*args, **kwargs)
您正在删除这里的kwargs app_名称

self.app_name = kwargs.pop('app_name')

哇,我对发生的事情有一个基本的误解。我原以为超级调用会运行超类的init?是的,确实如此,但是没有app_name和file_dir关键字参数,因为您正在弹出它们。我不明白为什么FilePathField(超类)会调用MultifileUploadViewer(我的自定义子类)init。如果我没有弹出KWARG,FilePathField会抱怨接收到意外的KWARG。超类没有调用子类,您不能添加导入pdb;弹出后设置_trace()并调试?哇,我对发生的事情有一个基本的误解。我原以为超级调用会运行超类的init?是的,确实如此,但是没有app_name和file_dir关键字参数,因为您正在弹出它们。我不明白为什么FilePathField(超类)会调用MultifileUploadViewer(我的自定义子类)init。如果我没有弹出KWARG,FilePathField会抱怨接收到意外的KWARG。超类没有调用子类,您不能添加导入pdb;pdb.set_trace()并在弹出后调试?