python - 将 ImageField url 与 django 中的另一个对象关联

标签 python django

我有两个模型,

class Core:

    def logo_path(instance, filename):
        pattern = re.compile(r'\s+')
        filename = re.sub(pattern, '', filename)
        return 'images/core/logos/core_{0}/{1}'.format(instance.pk, filename)

    name = models.CharField(db_index=True, max_length=255)
    logo = models.ImageField(upload_to=logo_path, blank=True, null=True)

class CoreRoom(Room):
    core = models.ForeignKey(Core, on_delete=models.CASCADE, null=True)
    logo_url = models.CharField(max_length=1024, null=True)

我想使用 Core 对象中 Logo 的路径填充 CoreRoom 对象中的 logo_url。 我该怎么做?

最佳答案

我怀疑这是必要的,因为 .您始终可以使用 my_core_room.core.logo.url 访问它,但最简单的方法是覆盖 .save()你的方法CoreRoom型号:

class CoreRoom(Room):
   ...
   def save(self, *args, **kwargs):
       self.logo_url = self.core.logo.url
       super(CoreRoom, self).save(*args, **kwargs)

关于python - 将 ImageField url 与 django 中的另一个对象关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200648/

相关文章:

python - 应用以属性系列作为参数的函数

python - 简单的 Python 随机模块

python - 在 keras 模型中对输入进行微分以用于损失

python - 如何在 Django 中按父类别订购模型?

django - 如何在我的用户页面 (HTML) 中为 django Admin 创建 url

Python 字符串 "Modifiers"

Python scapy 导入错误

python - 权限错误 : [WinError 5] Access is denied

python - Django 手动渲染表单并使用 csrf token

python - Django:如何验证 m2m 关系?