Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在每个用户首次注册并将其文件保存到文件夹时,自动为其创建文件夹_Python_Django_Django Models_Django Rest Framework - Fatal编程技术网

Python 在每个用户首次注册并将其文件保存到文件夹时,自动为其创建文件夹

Python 在每个用户首次注册并将其文件保存到文件夹时,自动为其创建文件夹,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,所以我尝试在每个用户注册后自动为他们创建一个文件夹 这是我的代码: def create_folder(instance): folder = Path("users/myfolder/".format(instance.user)).mkdir(parents= True, exist_ok= True) return folder class MyModel(models.Model): folder_to_upload = models.File

所以我尝试在每个用户注册后自动为他们创建一个文件夹

这是我的代码:

def create_folder(instance):
   folder = Path("users/myfolder/".format(instance.user)).mkdir(parents= True, exist_ok= True)
   return folder

class MyModel(models.Model):
     folder_to_upload = models.FileField(upload_to= create_folder, null= True)
除非上载文件,否则不会创建文件夹


我想实现的是,在每个用户首次注册时自动为其创建一个文件夹,以便用户可以将其文件保存到其中。

覆盖保存方法

试试这个:

class MyModel(models.Model):
     def save(self, *args, **kwargs):
          if os.path.isfile("users/myfolder/".format(self.user)):
               Path("users/myfolder/".format(self.user)).mkdir(parents= True, exist_ok= True)
          super(MyModel,self).save(*args, **kwargs)
     

你需要做的是添加一个信号。当一个用户被创建时,它会发出信号,你可以把代码放在那里创建一个文件夹。