如何传递文件';django模型中的内容是否为CharField?
我有一个图标模型,它看起来像这样:如何传递文件';django模型中的内容是否为CharField?,django,django-models,Django,Django Models,我有一个图标模型,它看起来像这样: class Icon(models.Model): name = models.CharField(max_length=50) icon = models.FileField(upload_to='icons/', blank=True, null=True) inline_svg = models.CharField(max_length=1000, blank=True) class Icon(models.Model):
class Icon(models.Model):
name = models.CharField(max_length=50)
icon = models.FileField(upload_to='icons/', blank=True, null=True)
inline_svg = models.CharField(max_length=1000, blank=True)
class Icon(models.Model):
def svg(self):
f = open(self.icon.url)
return f.read()
name = models.CharField(max_length=50)
icon = models.FileField(upload_to='icons/', blank=True, null=True)
inline_svg = models.CharField(max_length=1000, default=svg())
大多数文件都是.svg,我想将其传递到相应文件的inline_svg
内容中,以便在前端使用inline svg。我该怎么做?或者也许有更好的变体来满足我的需求
我也有这样的想法:
class Icon(models.Model):
name = models.CharField(max_length=50)
icon = models.FileField(upload_to='icons/', blank=True, null=True)
inline_svg = models.CharField(max_length=1000, blank=True)
class Icon(models.Model):
def svg(self):
f = open(self.icon.url)
return f.read()
name = models.CharField(max_length=50)
icon = models.FileField(upload_to='icons/', blank=True, null=True)
inline_svg = models.CharField(max_length=1000, default=svg())
让我们看看我是否正确理解了你的问题。用户上传文件,当文件是svg时,您希望将其存储在
inline_svg
class Icon(models.Model):
name = models.CharField(max_length=50)
icon = models.FileField(upload_to='icons/', blank=True, null=True)
inline_svg = models.CharField(max_length=1000, default='')
def save(self, *args, **kwargs):
if self.icon.name.endswith('.svg'):
self.inline_svg = self.icon.read()
super().save(*args, **kwargs)
没错。我猜你忘了“如果”的说法了。