2010-07-23 73 views
0
class Project(models.Model): 
    slug = models.SlugField(max_length=100) 
    main_file = models.FilePathField(path="/home/mn/myfiles/%s" % slug) 

此代碼不起作用,只是說明我想要做什麼。 我想在訪問對象時填入FilePathField(即,當它在django admin中更新時,而不是在創建時)。django dynamic FilePathField

有沒有一個鉤子,你可以在填充之前設置字段?像object.on_get(instance): ...或許?

回答

1

目前還不清楚你的意圖。

由於模型實例只是Python類,你可以通過在工程類中的方法做到這一點:

class Project(models.Model): 
    slug = models.SlugField(max_length=100) 

    @property 
    def main_file(self): 
     return "/home/mn/myfiles/%s" % self.slug 

如果要手動指定的MEDIA_ROOT以外的位置來上傳文件,你需要子類django.db.models.fields.files.FileField並覆蓋the __init__ method