2010-07-23 74 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