簡體   English   中英

django文件上傳到動態路徑

[英]django file upload to dynamic path

我正在嘗試將文件上傳到django。 因此,我嘗試使用下面的代碼為文件創建動態路徑。 但是,它不起作用。

我實際上不確定如何在model.py中使用實例以及如何將路徑傳遞給def get_file_path。 具體來說,我想要的是從views.py中的函數傳遞文件路徑。 例如,當我調用docfile.save(filepath)之類的東西時,它將保存在django中的該文件路徑中。 你可以幫幫我嗎?

一個例子:

 docfile.save(path1)

it will be saved in /path1/file_name

注意:path1可以是任何內容,它與任何模型字段無關。

例如,您可以在模型上有一個額外的字段(例如path ),指定您可以通過get_file_path instance.path訪問的路徑。 您無法訪問要在此函數中save參數。

您可以編寫自定義文件字段。

class MyFieldField(FileField):

def get_path(self, attname):
        return 'path/to/%d' % self.id

def contribute_to_class(self, cls, name):
    super(MyFileField, self).contribute_to_class(cls, name)
    dispatcher.connect(self._post_init, signals.post_init, sender=cls)

def _post_init(self, instance=None):
    if hasattr(instance, 'get_path'):
        self.upload_to = instance.get_path(self.attname)

def db_type(self):
    return 'varchar(100)'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM