【问题标题】:django dynamic FilePathFielddjango动态文件路径字段
【发布时间】:2010-07-23 14:54:45
【问题描述】:
class Project(models.Model):
    slug = models.SlugField(max_length=100)
    main_file = models.FilePathField(path="/home/mn/myfiles/%s" % slug)

这段代码不起作用,只是说明了我想做的事情。 我想在访问对象时填写FilePathField(即在 django admin 中更新它时,而不是在创建它时)。

是否有一个钩子可以在字段被填充之前设置它们? object.on_get(instance): 之类的东西……也许吧?

【问题讨论】:

    标签: django dynamic models


    【解决方案1】:

    不清楚你在这里的意图是什么。

    由于 Model 实例只是 Python 类,您可以通过 Project 类上的方法来做到这一点:

    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

    【讨论】:

      猜你喜欢
      • 2011-07-05
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 2014-05-26
      • 2021-06-24
      • 2018-02-09
      相关资源
      最近更新 更多