如何在django rest中添加默认图片?

如何在django rest中添加默认图片?

问题描述:

我有我传递first_namelast_name后时相同如何在django rest中添加默认图片?

class Profile(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30,blank=True) 
    dp = models.ImageField(upload_to = '/media/images/dp/',blank=True) 

用户配置文件的模型。我有一个物理存储在/media/images/dp/default.jpg的图像。如何在创建过程中将此图像设置为每个配置文件的默认值?

在此先感谢。

您可以在模型上指定的默认图像,像这样:

class Profile(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30,blank=True) 
    dp = models.ImageField(upload_to = '/media/images/dp/',blank=True, default= '/media/images/dp/default.jpg', null=True, blank=True) 

所以,当你创建模型,如果你不发送DP形象,Django会使用默认值。

+0

谢谢,它的工作。 –

我个人喜欢保持我的模型字段尽可能“精益”,并将它们“增加”到属性上以进行简单的更改,而无需更改数据库表。

这样说的话,我会建议在你的模型上创建一个属性来检查用户上传的个人头像,否则显示默认的头像。另外,我会让您的上传位置成为同样轻松修改的功能。

def upload_location(filename): 
    return "media/images/dp/{}".format(filename) 

class Profile(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30,blank=True) 
    dp = models.ImageField(upload_to=upload_location', null=True, blank=True) 

    @property 
    def default_picture(self): 
     if self.dp: 
      return "{}{}".format(settings.MEDIA_URL, self.dp) 
     return '/media/images/dp/default.jpg'