我想在upload峈to:
class Foo(models.Model):
filestack = models.FileField(upload_to=self. gen_save_path)
def gen_save_path(self):
"""
gen_save_path: void -> String
Generates the path as a string for fileStack field.
"""
return "some generated string"
但是我得到了NameError: name 'self' is not defined
错误
filestack
是一个类属性,在声明它时,您不能使用self,因为还没有创建类的对象(self
),根据djangodocsupload_to
有两个参数,instance(定义FileField的模型实例)和filename(最初给文件的文件名),所以您可以将upload_to
设置为这样的函数如果希望在类中包含
^{pr2}$gen_save_path
,可以使用lambda来调用self.gen_save_path
,例如在代码中,filestack是类范围内的变量,因为它没有在方法中定义。 所以在这个范围内没有可用的self。在
我想你可以用:
或者
在
__init__
构造函数中定义filestack值,您可以在其中使用self!!在我想如果你使用lambda函数,这会起作用:
相关问题 更多 >
编程相关推荐